Asp.net 通过WCF将客户端证书发送到会导致错误:“0”;客户端身份验证方案禁止HTTP请求';匿名'&引用;

Asp.net 通过WCF将客户端证书发送到会导致错误:“0”;客户端身份验证方案禁止HTTP请求';匿名'&引用;,asp.net,wcf,Asp.net,Wcf,我有一个IIS ASP.NET服务,需要通过WCF https调用另一个IIS服务,而另一个服务需要客户端证书 下面,我添加了以下代码(在源代码端): 上面唯一的区别是,我正在从文件加载证书(与目标服务使用的证书相同) 现在,当我打电话时,我得到以下错误: 客户端身份验证方案“匿名”禁止HTTP请求 我看不出我错过了什么 有人知道为什么这对我不起作用吗 提前感谢请注意那篇文章的这一段 在这种情况下,服务托管在Internet信息下 使用安全套接字层(SSL)配置的服务(IIS)。 该服务配置了S

我有一个IIS ASP.NET服务,需要通过WCF https调用另一个IIS服务,而另一个服务需要客户端证书

下面,我添加了以下代码(在源代码端):

上面唯一的区别是,我正在从文件加载证书(与目标服务使用的证书相同)

现在,当我打电话时,我得到以下错误:

客户端身份验证方案“匿名”禁止HTTP请求

我看不出我错过了什么

有人知道为什么这对我不起作用吗


提前感谢

请注意那篇文章的这一段

在这种情况下,服务托管在Internet信息下 使用安全套接字层(SSL)配置的服务(IIS)。 该服务配置了SSL(X.509)证书以允许 客户端验证服务器的标识。客户也是 配置了允许服务验证的X.509证书 客户端的身份。必须信任服务器的证书 并且客户端的证书必须由客户端信任 服务器

在服务器端,承载具有传输安全性的WCF需要在IIS站点绑定模块中进行Https绑定,即将证书绑定到端口,然后使用此端口公开服务。此外,请注意,我们应该在服务器端和客户端之间建立信任关系,也就是说,如果您使用的是自签名证书,则在
受信任的根证书颁发机构
本地安装彼此的证书。

如果问题仍然存在,请随时通知我。

谢谢。因此,我假设客户端需要2个证书,1个。我们说我们信任发行人。2.我们向服务器发送的来自该颁发者的证书。我做了所有这些,但我仍然得到同样的错误。我甚至尝试发送我安装的证书(由另一个执行目标服务器端的开发人员提供)。但不幸的是,它仍然得到相同的错误。客户端安装的证书应该是服务器使用的证书。客户端提供的证书也应由服务器安装。您是如何生成证书的?如何确保将当前证书颁发给服务器/客户机,而不被其他证书替换?证书的主题应与当前计算机的域名匹配。您能否访问客户端计算机上的服务页面(应为HTTPS)并在浏览器上显示安全锁徽标?
  WSHttpBinding binding = new WSHttpBinding();      
  binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;      
  binding.Security.Mode = SecurityMode.Transport;

  m_wcfProxy = new IISSecurityServices.SecurityServiceClient();
  m_wcfProxy.Endpoint.Binding = binding;
  m_wcfProxy.Endpoint.Address = new EndpointAddress(m_wcfProxyEndpointAddress);            
  m_wcfProxy.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2("D:\\0\\SslClientCert.cer"); ;