Когда я получить доступ сертификата из файловой системы, либо локально, либо на лазурном сайте, с помощью следующего кода, у меня нет никаких проблем:Keyset не существует при доступе сертификата лазурного веба-сайте
X509Certificate2 certificate = new X509Certificate2(keyFilePath, "mysecret", X509KeyStorageFlags.MachineKeySet |
X509KeyStorageFlags.PersistKeySet |
X509KeyStorageFlags.Exportable);
Однако, когда я следую инструкциям на https://azure.microsoft.com/en-us/blog/using-certificates-in-azure-websites-applications/ для использования лазурь хранилище сертификатов, все работает в течение первых 3 до 9 запросов, и все последующие вызовы обязательно на следующей строке
var rsa = certificate.PrivateKey as RSACryptoServiceProvider;
с «System.Security ошибки. Криптография. Криптографическое исключение: Ke yset не существует "до тех пор, пока сайт не будет перезапущен, а затем будет работать по меньшей мере на 3 запроса.
Я сбив с толку, почему он работает как минимум на 3 и до 9 запросов, а затем всегда с ошибкой. Буду признателен за любые советы.
Спасибо. Я смог «исправить» проблему, не установив для параметра PersistKeyInCsp значение false. К сожалению x509Certificates и криптография находятся вне моей рулевой рубки; код, с которым я работаю, - это библиотека, которую мы нашли в Интернете, для создания токенов для Google firebase. В то время как я сейчас разблокирован, ясно, что я должен кое-что рассмотреть как внутреннюю работу этого, и не рассматривать эту библиотеку как черный ящик. –