计算机重启后,'System.Security.Cryptography.CryptographicException':Keyset不存在

时间:2017-02-10 07:12:22

标签: c# x509certificate private-key system.security

我使用以下代码对数据进行签名:

        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"));

首次将证书安装到我的本地计算机后工作正常,但是当我尝试在计算机重新启动后签名时会抛出异常。可能的原因是什么,请帮忙。

1 个答案:

答案 0 :(得分:0)

我有同样的问题。在我的帐户中运行的IIS Express能够在我在本地计算机上导入证书的私钥时访问,但在重新启动后却无法访问。我能够修复的方法是在 certlm 控制台中明确授予我帐户的完全权限(即使我的帐户已经在拥有该私钥的完全权限的本地管理员组中)。