我使用以下代码对数据进行签名:
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"));
首次将证书安装到我的本地计算机后工作正常,但是当我尝试在计算机重新启动后签名时会抛出异常。可能的原因是什么,请帮忙。
答案 0 :(得分:0)
我有同样的问题。在我的帐户中运行的IIS Express能够在我在本地计算机上导入证书的私钥时访问,但在重新启动后却无法访问。我能够修复的方法是在 certlm 控制台中明确授予我帐户的完全权限(即使我的帐户已经在拥有该私钥的完全权限的本地管理员组中)。