【发布时间】:2025-11-22 10:40:02
【问题描述】:
我正在使用以下代码对数据进行签名:
RSACryptoServiceProvider csp;
X509Store my = new X509Store(StoreName.My, StoreLocation.LocalMachine);
my.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 cert in my.Certificates)
{
if (cert.Subject.Contains(certSubject))
{
csp = (RSACryptoServiceProvider)cert.PrivateKey;
}
}
csp.SignHash(hash, CryptoConfig.MapNameToOID("SHA256"));
将证书安装到本地计算机后第一次工作正常,但是当我在计算机重新启动后尝试签名时会引发异常。可能是什么原因,请帮忙。
【问题讨论】:
-
您的代码中是否设置了类似
csp.PersistKeyInCsp = false的内容?如果是这样,那就是该对象被处置的时候。 -
否,电脑不重启也能正常工作,但重启后出现问题,系统重启时是否处理?
-
在当前用户而不是本地机器上安装证书对我有用,但在本地机器上安装会出现同样的错误。
标签: c# x509certificate private-key system.security