为什么我可以';在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中指定客户端证书。"

有人能帮我理解为什么我找不到我的证书吗?感谢

为什么我可以';在WCF服务中找不到证书

如果你看这里,你会发现你试图使用的商店不是来自可信人员文件夹的商店,而是来自个人文件夹的商店

你应该使用

StoreName.TrustedPeople

查看此处了解更多详细信息https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename(v=vs.110).asp

也很可能需要StoreLocation.LocalMachine.