Прочитайте сертификаты хранилища в Windows Server 2019 с помощью Asp.net и с #

#c# #asp.net #x509certificate

Вопрос:

Asp.net и c #. Мне просто нужно прочитать список личных сертификатов текущего пользователя. Если я использую этот код на компьютере разработчика, он работает, если я использую его на сервере с Windows 2019 и IIS 10, архив выглядит пустым, но я вижу установленный сертификат. (Я вошел на сервер как администратор) Я не понимаю, почему это происходит.

 using (X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
 store.Open(OpenFlags.ReadOnly);
 X509Certificate2Collection aCert = store.Certificates;
 aCert.Count; //WAS 34 ON MY PC, 0 ON SERVER 2019
}
 

Комментарии:

1. Если пул приложений IIS не запущен под вашим пользователем, это нормально, что хранилище пусто. Рассмотрите возможность использования CurrentMachine и сохраните сертификат в папке CurrentMachineМое местоположение

2. @Пребен Хюйбрехтс. Пока ты писал это, я делал это, и это работает. Спасибо вам за ваше предложение!

3. Ваш исходный код также мог бы сработать, если бы вы открыли диспетчер сертификатов, используя учетные данные пользователя пула приложений, и добавили сертификат в хранилище этого пользователя.

Ответ №1:

Я сменил название магазина.Мое имя для хранения.Укореняйся, и все будет хорошо. Я все делал как Администратор

Комментарии:

1. Я бы посоветовал вам, с точки зрения полноты, отредактировать свой ответ и добавить примечание, чтобы убедиться, что пользователю, запускающему пул приложений, предоставлено разрешение на сертификат. Забвение об этом иногда вызывает небольшую головную боль.

2. Я установил сертификат как администратор и больше ничего не изменил. Я добавляю это к ответу