2015-09-11 3 views
0

Я пытаюсь запустить образец с лебедки Azure SDK, обмениваясь информацией с службой Azure MFA. Образец компилируется и запускается в визуальной студии, но после его развертывания в IIS я получаю следующую ошибку:ASP CrytographicException: доступ запрещен

Доступ запрещен.

Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Exception Details: System.Security.Cryptography.CryptographicException: Access is denied. 

Я подозреваю, что это связано с сертификатом, который необходим для проверки подлинности на Azure службы, но не уверен, как устранить неисправность, как я не разработчик по профессии. Сертификат находится в том же месте, что и приложение ASP, и он правильно указан в коде. Опять же, код работает через Visual Studio.

Трассировка стека:

[CryptographicException: Access is denied. 
] 
    System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +41 
    System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName) +0 
    System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) +125 
    System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) +141 
    pf_auth.send_message(String target, String message, String cert_file_path, String& body) +221 
    pf_auth.pf_authenticate_internal(PfAuthParams pfAuthParams, Boolean asynchronous, String& otp, Int32& call_status, Int32& error_id) +744 
    MFADemo.example.btnTest_Click(Object sender, EventArgs e) +1602 
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11754953 
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +150 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3619 
+0

Проверьте, есть ли у вашего приложения разрешения на чтение файла сертификата, который вы загружаете. – Dai

ответ

0

Я думаю, что вам лучше загрузив сертификат для приложения в портал управления Azure на вкладке Конфигурация:

enter image description here

, а затем в коде вашей Место для хранения сертификатов должно быть «CurrentUser» вместо «LocalMachine», чтобы оно работало в Azure ...

У нас было несколько подает иск с сертификатами чтения из файловой системы в Azure и завершает загрузку на сайт Azure и считывает его из магазина ...

+0

Спасибо за ответ. Сервер работает на месте. Вот как я загружаю .p12 cert :, 'String cert_file_path =" "C: \\ inetpub \\ wwwroot \\ cert_key.p12"; ', ' X509Certificate cert = new X509Certificate2 (cert_file_path, CERT_PASSWORD, X509KeyStorageFlags .MachineKeySet); request.ClientCertificates.Add (cert); ' – Adoyt

Смежные вопросы