Azure登录密钥将于2015年8月15日滚动。我的某些应用程序未设置为自动处理此问题。我以为我有一个在Global.asax中使用以下函数的解决方案
protected void RefreshValidationSettings()
{
string configPath = AppDomain.CurrentDomain.BaseDirectory + "\\" + "Web.config";
string metadataAddress = ConfigurationManager.AppSettings["ida:FederationMetadataLocation"];
ValidatingIssuerNameRegistry.WriteToConfig(metadataAddress, configPath);
}
这适用于我桌面上的调试,新密钥已下载并写入我的web.config。
当我将网站上传到azure时,虽然我获得了拒绝访问
拒绝访问路径'E:\ sitesroot \ 0 \ Web.config'。
ASP.NET无权访问所请求的资源。考虑将资源的访问权限授予ASP.NET请求标识。 ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE} \ ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识。如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户。
要授予对文件的ASP.NET访问权限,请在“文件资源管理器”中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加适当的用户或组。突出显示ASP.NET帐户,并选中所需访问的框。
奇怪的是,虽然这是我的https://www.polymer-project.org/1.0/toolbox/app-layout
的建议答案 0 :(得分:1)
这篇博文详细讲述了这个问题。也许这可以帮到你 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/
答案 1 :(得分:1)
您在"Web applications protecting resources and created with Visual Studio 2012" section of the Signing Key Documentation中指出的指南仅适用于您可以在运行时修改web.Config的应用程序。
Azure Web应用程序不属于此类别。除了您面临的权限问题之外,Azure Web应用程序无法保证底层VM的持久性。这意味着任何运行时都可以更改为web.Config可以在任何时候撤消。
出于8月15日翻转的目的,您可以在本地运行应用程序,只需更新应用程序的已登录web.Config和Azure Web App的设置。鉴于元数据已经同时具有当前密钥和Azure AD将在15日滚动到的密钥,因此生成的web.Config / settings将覆盖此特定事件。
但是,要正确支持自动翻转,最好的办法是将应用程序迁移到较新的堆栈,例如Owin中间件。