我有一个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。
这两个证书均安装在同一存储区中,并且对于执行控制台应用程序的用户在管理私钥中都具有相同的权限。
两个证书都具有:
有什么想法吗?
更新
如果我激活了SCHANNEL日志记录,则当我使用失败的证书时,在事件查看器上我们会看到此错误:
已解决
问题是我们使用以下方法获取证书
X509FindType.FindBySubjectName
对于我们正在使用的主题,至少还有另外3个包含该主题的证书。
然后我们获得的证书不正确,我们将代码更改为使用
X509FindType.FindBySubjectDistinguishedName 要么 X509FindType.FindByThumbprint
现在可以获取正确的客户端证书并且可以使用。
答案 0 :(得分:0)