为什么我可以';在WCF服务中找不到证书
本文关键字:服务 找不到 证书 WCF 我可以 为什么 | 更新日期: 2023-09-27 18:22:25
我正试图用WCF开发一项服务,但找不到我创建的证书,该证书位于TrustedPeple文件夹下。到目前为止,这是我写的代码块:
client.ClientCredentials.ServiceCertificate.SetDefaultCertificate(
StoreLocation.CurrentUser,
StoreName.My,
X509FindType.FindBySubjectName,
"WCfClient");
正如你从上面的代码中看到的,我也试图手动设置证书特征,但我仍然找不到
此外,为了更好地理解,我将发布我的针叶树xml文件的一部分:
<services>
<service
name="XMLServices.CriDecServices.CriDecService"
behaviorConfiguration="wsHttpCertificateBehavior">
<endpoint name="CriDecPoint"
address=""
binding="wsHttpBinding"
bindingConfiguration="wsHttpEndpointBinding"
contract="XMLContracts.ServiceContracts.ICriDecService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/XMLServices/CriDecServices/CriDecService" />
</baseAddresses>
</host>
</service>
<service
name="XMLServices.UtenteServices.UtenteService"
behaviorConfiguration="wsHttpCertificateBehavior">
<endpoint
name="UserPoint"
address=""
binding="wsHttpBinding"
bindingConfiguration="wsHttpEndpointBinding"
contract="XMLContracts.ServiceContracts.IUtenteService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8766/XMLServices/UtenteServices/UtenteService" />
</baseAddresses>
</host>
</service>
</services>
这是我得到的例外:
"未提供客户端证书。请在ClientCredentials中指定客户端证书。"
有人能帮我理解为什么我找不到我的证书吗?感谢
如果你看这里,你会发现你试图使用的商店不是来自可信人员文件夹的商店,而是来自个人文件夹的商店
你应该使用
StoreName.TrustedPeople
查看此处了解更多详细信息https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename(v=vs.110).asp
也很可能需要StoreLocation.LocalMachine.