1

当我通过其 pfx 安装 x509Certificate2 对象后第一次尝试使用它时,它可以对数据进行签名,但是从第二次开始它就不能并显示错误,即密钥集不存在在线...

RSACryptoServiceProvider csp = (RSACryptoServiceProvider)cert.PrivateKey;

在调试中还显示

A first chance exception of type 
'System.Security.Cryptography.CryptographicException' occurred in mscorlib.dll

无法弄清楚这里的问题......

4

2 回答 2

3

我有解决方案...

首次运行成功后,私钥无法访问,因此产生了问题。

解决方案是添加一行代码:

csp.PersistKeyInCsp = true;

它确保密钥是可访问的。

于 2013-01-29T06:58:43.927 回答
0

如果尝试访问私钥的 Windows 用户没有这样做的权限,您可能会收到此错误。要修复打开的 MMC 并添加证书管理单元,请找到证书,右键单击所有任务 -> 管理私钥并授予该特定用户读取私钥的权限。

于 2014-10-25T02:31:25.377 回答