Необходимые разрешения для доступа к смарт-картам из службы Windows
У меня есть служба Windows, которая делает некоторые вещи с помощью смарт-карты. Сертификат смарт-карты отображается в хранилище MY локального компьютера. Доступ к закрытому ключу смарт-карты не является проблемой, когда служба запускается как система, но происходит сбой при запуске как NetworkService.
Я уже предоставил доступ к сертификату NetworkService с помощью MMC сертификата (Управление личными ключами...).
Я получаю ошибку: менеджер ресурсов смарт-карт не работает.
Ошибка генерируется с криптографическим исключением.
Stacktrace: at System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)
at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()
at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 dwKeySize, CspParameters parameters, Boolean useDefaultKeySize)
at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()
Любые идеи, какие привилегии и / или разрешения требуются для доступа к диспетчеру ресурсов смарт-карт?
С уважением,
Хеннинг Краузе
2 ответа
LocalService имеет достаточно разрешений для доступа к смарт-картам. Это решение, которое я выбрал.
X509Certificate2 вызывает исключение "Диспетчер ресурсов смарт-карт не работает" http://blogs.msdn.com/b/alejacma/archive/2011/05/19/x509certificate2-raises-quot-the-smart-card-resource-manager-is-not-running-quot-exception.aspx