我正在尝试与需要基本和客户端证书以使用 WCF 进行身份验证的 Web 服务端点集成。我根据网上的建议尝试了以下不同的设置,但我仍然收到“无法为具有权限 XXXXX 的 SSL/TLS 建立安全通道”。服务器使用 Windows 证书存储中已有的知名 CA。在代码中,我成功添加了 ClientCredentials.UserName.UserName 、 ClientCredentials.UserName.Password 和 ClientCredentials.ClientCertificate.Certificate 。
1)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic"/>
</security>
结果:“无法为具有权限 XXXXX 的 SSL/TLS 建立安全通道”
2)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate" />
</security>
结果:结果:“无法为具有权限 XXXXX 的 SSL/TLS 建立安全通道”
3)
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="UserName" />
</security>
结果:HTTP 请求未经授权,客户端身份验证方案为“匿名”。从服务器收到的身份验证标头是“Basic realm="Realm"”。---> System.Net.WebException:远程服务器返回错误:(401)未经授权。
如何使用基本身份验证附加客户端证书,因为服务器期望基于将 clientCredentialType 设置为“证书”时返回的错误进行基本身份验证。
注意:使用 SOAPUI 我可以成功连接服务器