1

Алюминиевые знаковые клавиши перескакивают 15 августа 2015 года. Некоторые из моих приложений не настраиваются, чтобы справиться с этим автоматически. Я думал, что решение, которое использовал следующую функцию в Global.asaxAzure AD Keying Rollover

protected void RefreshValidationSettings() 
{ 
    string configPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + "Web.config"; 
    string metadataAddress = ConfigurationManager.AppSettings["ida:FederationMetadataLocation"]; 
    ValidatingIssuerNameRegistry.WriteToConfig(metadataAddress, configPath); 
} 

Это работает в отлаживать на моем рабочем столе и новые ключи загружаются и записываются в моем web.config.

Когда я загрузить сайт лазурного хотя я получить доступ отказано

доступ к пути «E: \ sitesroot \ 0 \ Web.config» отказано.

ASP.NET не имеет права доступа к запрашиваемому ресурсу. Рассмотрите возможность предоставления прав доступа ресурсу к идентификатору запроса ASP.NET. ASP.NET имеет базовый идентификатор процесса (обычно {MACHINE} \ ASPNET на IIS 5 или сетевую службу на IIS 6 и IIS 7 и настроенный идентификатор пула приложений в IIS 7.5), который используется, если приложение не выдаёт себя за изображение. Если приложение выдаст себя, идентификатор будет анонимным пользователем (обычно IUSR_MACHINENAME) или пользователем, прошедшим проверку подлинности.

Чтобы предоставить ASP.NET доступ к файлу, щелкните файл правой кнопкой мыши в Проводнике файлов, выберите «Свойства» и выберите вкладку «Безопасность». Нажмите «Добавить», чтобы добавить соответствующего пользователя или группу. Выделите учетную запись ASP.NET и установите флажки для нужного доступа.

Жутко, хотя это было предложено с учетом моих microsoft

+0

Можете ли вы попробовать 'WebConfigurationManager.OpenWebConfiguration (null)' получает корневой файл 'web.config' в приложении в качестве объекта' Configuration'. У объекта 'Конфигурация' есть свойство' FilePath' – HashName

+0

Не будет ли такая же проблема, как и при той же учетной записи? – DasDave

ответ

0

этом блоге переговоры по данному вопросу в деталях. Может быть, это может помочь вам
https://blogs.msdn.microsoft.com/cie/2016/01/15/error-access-to-the-path-esitesroot0web-config-is-denied-when-storing-azure-ads-public-key-in-web-config-of-an-azure-cloud-services-application/

+0

Извинения должны были упомянуть, что я пробовал это без успеха. Я думаю, что проблема была в примере использует учетную запись сетевой службы. Кажется, что Azure использует учетную запись ASP.NET. Я не знаю, хотя именно, какую учетную запись я должен поместить в файл, который он предлагает создать. Есть предположения? – DasDave

+0

Так что я ошибся в пакетном файле, и теперь это работает. Благодаря! – DasDave

1

Руководство вы указали в "Web applications protecting resources and created with Visual Studio 2012" section of the Signing Key Documentation применим только к приложениям, где вы можете изменить Web.config во время выполнения.

Azure Web-приложения не относятся к этой категории. Помимо проблем с разрешениями, с которыми вы сталкиваетесь, веб-приложения Azure не гарантируют сохранность базовой виртуальной машины. Это означает, что любое время выполнения изменяется на web.Config можно отменить в любой момент.

С целью опроса 15 августа вы можете запустить приложение локально и просто обновить настройки веб-приложений приложений Web.Config и Azure. Учитывая, что в метаданных уже есть как текущий ключ, так и ключ, с которым Azure AD будет переходить на 15-й, результирующий web.Config/settings будет охватывать вас для этого конкретного события.

Однако для правильной поддержки автоматического опрокидывания лучше всего перенести приложение на новый стек, например, промежуточное ПО Owin.

+0

У вас есть хорошие ресурсы/примеры? – DasDave