Почему я не могу найти сертификат в Службе WCF?

Я пытаюсь разработать службу с 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."

Может ли кто-нибудь помочь мне понять, почему я не могу найти свой сертификат? Спасибо

1 ответ

Если вы посмотрите здесь, то увидите, что магазин, который вы пытаетесь использовать, находится не в папке доверенных людей, а в личной папке.

ты должен использовать

StoreName.TrustedPeople

смотрите здесь для получения дополнительной информации https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename(v=vs.110).asp

также скорее всего вам нужен StoreLocation.LocalMachine.

Другие вопросы по тегам