![](/img/trans.png)
[英]System.Net.WebException : The remote server returned an error: (403) Forbidden
[英]System.Net.WebException: The remote server returned an error: (403) Forbidden
我有一个WCF服务,该服务需要使用证书进行客户端身份验证。
我有一个使用此WCF的简单控制台应用程序。
我有2个客户端证书,第一个证书控制台应用程序运行良好,第二个证书则返回此错误:
System.ServiceModel.Security.MessageSecurityException: The HTTP request was forbidden with client authentication scheme 'Anonymous'. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
我在IIS日志中看到的是403.7。
这两个证书都安装在同一存储中,并且在执行控制台应用程序的用户的“ 管理私钥”中都具有相同的权限。
两种证书都具有:
有任何想法吗?
UPDATE
如果我激活了SCHANNEL日志记录,则当我使用失败的证书时,在事件查看器上我们会看到以下错误:
解决了
问题在于我们使用以下方法获取证书:
X509FindType.FindBySubjectName
对于我们正在使用的主题,至少还有另外3个包含该主题的证书。
那么我们得到的证书是不正确的,我们更改代码以使用
X509FindType.FindBySubjectDistinguishedName或X509FindType.FindByThumbprint
现在可以获取正确的客户端证书并可以使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.