Как дать разрешение сетевой службе на установку сертификата в хранилище сертификатов
Мы разработали приложение ASP.Net. Мой пул приложений работает под именем Network Service Identify. Через код, который нам нужен для установки сертификата. Поскольку мой пул приложений работает с привилегиями сетевой службы, он вызывает криптографическое исключение "Отказано в доступе".
Я попробовал следующий вариант:
- Предоставлены полные права доступа к сетевой службе по следующему пути: "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys"
- Установлен и ниже инструмент для предоставления разрешения на обслуживание сети. WinHttpCertCfg.exe Невозможно дать разрешения для корневого сертификата. Этот инструмент полезен только для разрешения доступа к определенному сертификату.
Пожалуйста, помогите мне решить эту проблему.
2 ответа
Согласно статье, найденной на MSDN
http://msdn.microsoft.com/en-us/library/windows/desktop/aa384088(v=vs.85).aspx
Это говорит:
Примечание. Пользователь должен иметь достаточные привилегии для использования этого инструмента, для чего требуется, чтобы пользователь был администратором и тем же пользователем, который установил сертификат клиента, если он установлен.
Поэтому проверьте, входит ли сетевой сервис в группу локальных администраторов.
Вся история ASP.net разрешений на хранилище корневых сертификатов
загрузите примеры проектов WCF по ссылке ниже и скомпилируйте проект FindPrivatekey. (советы: добавьте ссылку system.security, в противном случае вы обнаружите неопределенную ошибку функции X509Certificate2UI) http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21459