После перезагрузки компьютера "System.Security.Cryptography.CryptographicException": набор ключей не существует
Я использую следующий код для подписи данных:
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 ответ
Я была такая же проблема. IIS Express, запущенный в моей учетной записи, смог получить доступ к закрытому ключу сертификата в тот день, когда я импортировал его на локальный компьютер, но не после перезапуска. Способ, который я смог исправить, - это явно предоставить полные права моей учетной записи в консоли certlm (даже если моя учетная запись уже была в группе локальных администраторов, у которой были полные права на этот закрытый ключ).