После перезагрузки компьютера "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 (даже если моя учетная запись уже была в группе локальных администраторов, у которой были полные права на этот закрытый ключ).

Другие вопросы по тегам