Как загрузить защищенные паролем сертификаты из X509Store? ⇐ C#

Место общения программистов C#
Anonymous
Как загрузить защищенные паролем сертификаты из X509Store?

Сообщение Anonymous »

Я создаю защищенную ACS службу Azure WCF, которая потребует от клиентов проверки подлинности с помощью сертификата.

Я хочу, чтобы клиент (и сервер) загружали свои соответствующие сертификаты паролей из X509Store, а не из файловой системы.

Я использую этот код:

Код: Выделить всё

private static X509Certificate2 GetCertificate(string thumbprint)
{
var certStore = new X509Store(StoreName.My, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadOnly);

X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
thumbprint, false);

certStore.Close();

if (certCollection.Count == 0)
{
throw new System.Security.SecurityException(string.Format(CultureInfo.InvariantCulture, "No certificate was found for thumbprint {0}", thumbprint));
}

return certCollection[0];
}
Проблема в том, что он не загружает закрытый ключ, необходимый для аутентификации. Я попытался изменить оператор возврата следующим образом:

Код: Выделить всё

return new X509Certificate2(certCollection[0].Export(X509ContentType.Pfx, "password"));
Однако это не удается из-за исключения CryptographicException «Указанный сетевой пароль неверен».

Изменить :
Метод .Export() работает правильно, если вы не передаете аргумент пароля.

Любая помощь по этому поводу?
Метод .Export() работает правильно, если вы не передаете аргумент пароля.

Помощь по этому поводу?
Метод .Export() работает правильно, если вы не передаете аргумент пароля. п>

Подробнее здесь: https://stackoverflow.com/questions/123 ... -x509store

Вернуться в «C#»