我有一个Windows服务,使用智能卡做一些事情。智能卡的证书映射到本地计算机的MY存储中。当服务作为System运行时,访问智能卡的私钥是没有问题的,但是当它作为NetworkService运行时它会失败。
我已经使用证书MMC(管理私钥...)授予了对NetworkService的证书访问权限。
我得到的错误是:智能卡资源管理器未运行。
使用加密异常抛出错误。
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()
访问智能卡资源管理器需要哪些特权和/或权限?
亲切的问候,
Henning Krause
答案 0 :(得分:1)
LocalService具有足够的权限来访问智能卡。这是我采用的解决方案。
答案 1 :(得分:0)