Не удается прочитать сертификаты CurrentUser из X509Store - PullRequest
8 голосов
/ 21 марта 2012

Я занимаюсь разработкой веб-приложения ASP.NET 4.0 и хочу прочитать текущие пользовательские сертификаты из X509Store.Чтение сертификатов LocalMachine работает нормально, но если я установил StoreLocation в CurrentUser, он даст мне пустую коллекцию.

Следующий код работает нормально:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); // StoreLocation.CurrentUser
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

Я проверил свой личныймагазин (через certmgr.mmc), и я уверен, что у меня есть сертификаты.

Что мне не хватает?(магазин. Сертификаты пусты)

Ответы [ 3 ]

2 голосов
/ 18 апреля 2012

Похоже, что вы не можете получить доступ к хранилищу личных сертификатов через веб-приложение, независимо от того, какую учетную запись пула приложений вы используете.

Имеет смысл, веб-приложение не имеет доступа к этому местоположению. :)

Мое решение:

Я разработал элемент управления ActiveX, который, по-моему, является единственным способом доступа к Магазину. (Кроме того, Java-апплет предлагает те же функции). Я использую элемент управления ActiveX через JavaScript для доступа к Магазину и отправляю эту информацию на сервер.

0 голосов
/ 04 марта 2013

У меня была похожая проблема.Решение было следующим:

Администратор IIS -> [ваш виртуальный каталог] -> Аутентификация-> Анонимная аутентификация (выберите, затем нажмите «Изменить ...») и измените его на «Идентификатор пула приложений».

В противном случае он может работать как общий «IUSR»

0 голосов
/ 27 мая 2012

Если ваш рабочий процесс не может получить доступ к хранилищу сертификатов, возможно, это просто проблема с настройкой учетной записи. Попробуйте перейти в IIS Configuration, открыть ApplicationPools, щелкнуть правой кнопкой мыши на своем, выбрать Advanced и попробовать установить LoadUserProfile в TRUE. И перезагрузите бассейн. Это работает для меня - больше никаких исключений при загрузке .PFX с закрытыми ключами.

...