У меня есть клиент WCF, который собирается аутентифицироваться на каком-либо веб-сервисе, используя сертификат, выданный этим сервисом. Сначала мой клиент использовал привязку https, как показано ниже:
var httpsBinding = new BasicHttpsBinding();
httpsBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
httpsBinding.Security.Mode = BasicHttpsSecurityMode.Transport;
, но это привело к следующей ошибке:
InvalidOperationException: сертификат клиента не предоставлен. Укажите сертификат клиента в ClientCredentials.
Затем я добавил следующий код в свою конфигурацию клиента:
this.ChannelFactory.Credentials.ClientCertificate.SetCertificate("test", System.Security.Cryptography.X509Certificates.StoreLocation.LocalMachine,
System.Security.Cryptography.X509Certificates.StoreName.My);
И теперь я получаю ошибку
System.InvalidOperationException: «Не удается найти сертификат X.509, используя следующие критерии поиска: StoreName« My », StoreLocation« LocalMachine », FindType« FindBySubjectDistinguishedName », FindValue« test ». '
IЯ абсолютно уверен, что сертификат находится в папке «Личные» на моем локальном компьютере, но он все равно не может его найти. Я попытался поместить сертификат в разные папки, переименовать его, используя отпечаток пальца для идентификации, но мое приложение все еще не может его найти. В чем может быть проблема здесь?