1

我正在尝试与需要基本和客户端证书以使用 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 我可以成功连接服务器

4

1 回答 1

0

我替换了 2.0 Web 服务参考而不是 WCF 服务参考来发送带有基本和客户端身份验证的请求,它按预期工作。

注意:Web Reference 是旧式不推荐使用的模型。

于 2018-08-03T12:05:22.793 回答