我想弄清楚如何从 .NET 调用 Java Web 服务(黑盒),它期望每个请求都用证书签名(这没问题)。
我不明白。无论我尝试什么,它都失败了。经过几个小时的研究和测试,我认为正确的方法应该是使用 customBinding 而不是 basicHttpBinding。我想要实现的是对 header 和消息正文进行签名。
通过使用身份验证模式 CertificateOverTransport 只对 SOAP header 进行签名,而不对正文进行签名。通过使用身份验证模式 MutualCertificate 一切都被签名和加密。
我有机会禁用整个消息的加密吗?
最佳答案
我知道了。
捆绑:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<bindings>
<customBinding>
<binding name="FFB">
<context protectionLevel="Sign" />
<textMessageEncoding messageVersion="Soap11" />
<security authenticationMode="MutualCertificateDuplex" includeTimestamp="true" />
<httpsTransport />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
</configuration>
另外:
service.Endpoint.Contract.ProtectionLevel = ProtectionLevel.Sign;