Почему я не могу найти сертификат в Службе 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.