我正在尝试使用WCF开发服务,但我找不到我创建的证书,此证书位于TrustedPeple文件夹下。到目前为止,这是我写的一大堆代码:
client.ClientCredentials.ServiceCertificate.SetDefaultCertificate(
StoreLocation.CurrentUser,
StoreName.My,
X509FindType.FindBySubjectName,
"WCfClient");
从上面的代码中可以看出,我还尝试手动设置证书特征,但我仍然找不到它。
另外,我会发布我的conif 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中指定客户端证书。”
任何人都可以帮助我理解为什么我似乎无法找到我的证书吗?感谢
答案 0 :(得分:0)
如果您在此处查看,您会发现您尝试使用的商店不是来自可信人员文件夹的商店,而是来自个人文件夹的商店
你应该使用
StoreName.TrustedPeople
也很可能你需要StoreLocation.LocalMachine。