在 C# 中访问 x509证书2 时不存在密钥集
本文关键字:不存在 密钥 证书 访问 x509 | 更新日期: 2023-09-27 17:56:29
当我在安装x509Certificate2对象后第一次尝试使用它时,它可以对数据进行签名,但从第二次开始它不能并显示一个错误,即键集不存在在线...
RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PrivateKey;
在调试中还显示
A first chance exception of type
'System.Security.Cryptography.CryptographicException' occurred in mscorlib.dll
无法弄清楚这里的问题...
我已经找到了解决方案...
首次成功运行后,私钥变得无法访问,因此产生了问题。
解决方案是添加一行代码:
csp.PersistKeyInCsp = true;
它确保密钥可访问。
如果尝试访问私钥的 Windows 用户没有执行此操作的权限,则可能会出现此错误。若要修复打开的 MMC 并添加"证书"管理单元,请找到证书,右键单击"所有任务"->"管理私钥",并向该特定用户授予读取私钥的权限。