我有一个WCF客户端,该客户端将使用由该服务发布的证书针对某些Web服务进行身份验证。最初,我的客户使用https绑定,如下所示:
var httpsBinding = new BasicHttpsBinding();
httpsBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
httpsBinding.Security.Mode = BasicHttpsSecurityMode.Transport;
但这会导致以下错误:
InvalidOperationException:未提供客户端证书。 在ClientCredentials中指定客户端证书。
然后我将以下代码添加到我的客户端配置中:
this.ChannelFactory.Credentials.ClientCertificate.SetCertificate("test",system.security.Cryptography.X509Certificates.StoreLocation.LocalMachine,system.security.Cryptography.X509Certificates.StoreName.My);
现在我得到了错误
System.InvalidOperationException:'找不到X.509证书 使用以下搜索条件:StoreName'My',StoreLocation 'LocalMachine',FindType'FindBySubjectDistinguishedName',FindValue “测试”。
我绝对可以将证书放在“本地计算机”上的“个人”文件夹中,但是仍然找不到。我尝试将证书放在指纹中的各个文件夹中,并使用指纹进行重命名,但我的应用程序仍然找不到它。这里可能是什么问题?