WCF + SSL,获取方法调用的空结果

标签 wcf ssl

我有以下情况 - 我调用远程服务,从我的 WCF 客户端用 Java 编写。此服务具有基于证书的身份验证,使用 SSL,并以 JKS 格式向所有客户端提供证书。我将此证书转换为 P12 格式并调用服务。 Сall 没有引发异常,但返回空结果。

客户端代理是从服务 WSDL 生成的。这是我的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior name="ClientEndPointBehavior">
          <clientCredentials>            
            <clientCertificate storeLocation="CurrentUser" storeName="My" x509FindType="FindBySerialNumber" findValue="01234567"/>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="MyBinding" allowCookies="true">
          <security mode="Transport">
            <transport clientCredentialType="Certificate"/>
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>     
      <endpoint address="https://myservice/services/"
          binding="basicHttpBinding" bindingConfiguration="MyBinding"
          contract="IContract" name="Contract"  behaviorConfiguration="ClientEndPointBehavior"/>
    </client>
  </system.serviceModel>  
</configuration>

我做错了什么?

最佳答案

您必须使用 CustomBinding 才能与 Java 客户端或服务进行互操作。您可以根据您的身份验证模式尝试以下任何绑定(bind)。

<customBinding>
<binding name="bindingName">
  <textMessageEncoding messageVersion="Soap11" />
  <httpsTransport authenticationScheme="Anonymous"         
                  requireClientCertificate="true" />
</binding>

为上述尝试不同的身份验证方案

<customBinding>
<binding name="bindingName">
  <textMessageEncoding messageVersion="Soap11" />
  <security authenticationMode="CertificateOverTransport" />
  <httpsTransport requireClientCertificate="true"/>
</binding>

请引用link对于 authenticationMode 的不同选项

希望对你有帮助

关于WCF + SSL,获取方法调用的空结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23469777/

相关文章:

wcf - WCF 客户端的 WSSecurity IBM DataPower 问题

ssl - 在不影响安全性的情况下存储客户端 SSL 证书

ios - 在 Enterprise iOS 应用程序中使用来自 .mobileconfig 的客户端 SSL 证书

iis - 创建 SDDL 失败,错误 : 1332

google-app-engine - Google App Engine 自定义域、子域和 SSL

c# - 在 WCF 服务中使用大量数据后清理内存

c# - 如何为现有 WCF 服务原生启用 JSONP?

c# - 如何将对象列表发送到 WCF 服务?

ssl - 显示搜索结果时如何避免混合内容错误?

c# - 从 Android 模拟器连接到本地主机上的 wcf 服务时遇到问题