Сертификаты .NET (C #) - PullRequest
       14

Сертификаты .NET (C #)

0 голосов
/ 02 октября 2010

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

Я использую этот код для открытия хранилища сертификатов и получения необходимого сертификата:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509CertificateCollection certCollection = store.Certificates;

Пользователь является учетной записью домена, и пул приложений для приложения использует ее.

Проблема в том, что я получаю сертификат только в том случае, если эта учетная запись зарегистрирована на компьютере. Если пользователь вышел из системы, я не могу получить доступ к этому магазину.

Есть идеи?

Спасибо!

1 Ответ

3 голосов
/ 02 октября 2010

Вам нужно переместить сертификат из хранилища сертификатов Windows в CurrentUser в хранилище LocalMachine (например, с помощью консоли MMC Certificates), затем изменить параметры конструктора X509Store с StoreLocation.CurrentUser на StoreLocation.LocalMachine.

Другой вариант - сохранить сертификат в файле PFX и загрузить его оттуда, но вам необходимо позаботиться о безопасности пароля, используемого при загрузке файла PFX с диска.

...