Я использую .NET Core 2.2 в Linux и Windows, я не хочу использовать магазины. Я пытаюсь добавить разрешения для IIS или Все для тестирования на "C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys", он не работает .. Файл создан, и я могу открыть его! Но почему моя программа не может этого сделать?
X509KeyStorageFlags flags = X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable;
X509Certificate2 cert = new X509Certificate2(rawCert, "myPassword", flags);
var pk = cert.GetRSAPrivateKey(); // Exception
Я получаю это исключение:
Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException HResult = 0x80090016 Сообщение = набор ключей не существует
Source = System.Security.Cryptography.Csp Арборесценция для обработки: в Internal.NativeCrypto.CapiHelper.CreateProvHandle (параметры CspParameters, логический randomKeyContainer) в System.Security.Cryptography.RSACryPervice.Hervice.Security_Service.Security_Service.Security_Service.SecuritySignServiceService_ServiceService_ServiceServiceService_ServiceService_ServiceService_ServiceServiceService.RSACryptoServiceProvider.get_SafeKeyHandle () в System.Security.Cryptography.RSACryptoServiceProvider..ctor (Int32 keySize, CspParameters параметры, логическое значение useDefaultKeySize) в System.Security.Cryptography.RSryptoCatePerviceTerviceTerviceTerviceTerviceTerviceTervice (). <> c.b__66_0 (CspParameters csp) в Internal.Cryptography.Pal.CertificatePal.GetPrivateKey [T] (Func 2
createCsp, Func
2 createCng) в Internal.Cryptography.Pal.CertificatePal.GetRSAPrivateKey () в Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPrivateKey [T] (X509Certificate2 сертификат, Predicate`1 совпадений Constraints) в System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAP2jectCateject (ConjectCateject (Conject). ] args) в ...