Asp.net Azures inbuild网站授权在返回到我的网站后引发权限错误

Asp.net Azures inbuild网站授权在返回到我的网站后引发权限错误,asp.net,asp.net-mvc,azure,azure-web-app-service,glimpse,Asp.net,Asp.net Mvc,Azure,Azure Web App Service,Glimpse,通过Azure门户在我的网站上激活“身份验证/授权”时 在我被重定向回我的站点后,“您没有查看此目录或页面的权限。”不会出现异常 此外,它还会将我重定向回url模式下的站点:https://{somewebsitename}.azurewebsites.net/{activedirectoryapplicationuid}/login 当我查看详细记录的错误时,我可以看到以下错误: <h3>HTTP Error 403.71 - Forbidden</h3> <h

通过Azure门户在我的网站上激活“身份验证/授权”时

在我被重定向回我的站点后,“您没有查看此目录或页面的权限。”不会出现异常

此外,它还会将我重定向回url模式下的站点:https://{somewebsitename}.azurewebsites.net/{activedirectoryapplicationuid}/login

当我查看详细记录的错误时,我可以看到以下错误:

<h3>HTTP Error 403.71 - Forbidden</h3> 
<h4>You do not have permission to view this directory or page.</h4> 
</div> 
<div class="content-container"> 
<fieldset><h4>Most likely causes:</h4> 
<ul>    <li>This is a generic 403 error and means the authenticated user is not authorized to view the page.</li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><h4>Things you can try:</h4> 
<ul>    <li>Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click <a href="http://go.microsoft.com/fwlink/?LinkID=66439">here</a>. </li> </ul> 
</fieldset> 
</div> 
<div class="content-container"> 
<fieldset><h4>Detailed Error Information:</h4> 
<div id="details-left"> 
<table border="0" cellpadding="0" cellspacing="0"> 
<tr class="alt"><th>Module</th><td>&nbsp;&nbsp;&nbsp;EasyAuthModule_32bit</td></tr> 
<tr><th>Notification</th><td>&nbsp;&nbsp;&nbsp;AuthenticateRequest</td></tr> 
<tr class="alt"><th>Handler</th><td>&nbsp;&nbsp;&nbsp;ExtensionlessUrlHandler-Integrated-4.0</td></tr> 
<tr><th>Error Code</th><td>&nbsp;&nbsp;&nbsp;0x80004005</td></tr> 
</table> 
</div>
HTTP错误403.71-禁止 您没有查看此目录或页面的权限。 最可能的原因:
  • 这是一个常见的403错误,意味着经过身份验证的用户无权查看页面。
    • 您可以尝试的事情:
      • 创建跟踪规则以跟踪此HTTP状态代码的失败请求。有关为失败请求创建跟踪规则的详细信息,请单击
      详细错误信息: 模块EasyAuth模块\u 32位 通知AuthenticateRequest 处理程序扩展无UrlHandler-Integrated-4.0 错误代码0x80004005 此
      EasyAuthModule
      不是我们的代码或任何参考库的一部分

      我如何解决这个问题?
      这个精确的设置过去工作得很好,现在已经停止工作了。这增加了混淆。

      这是
      EasyAuthModule
      实际上是一个Microsoft库。 Azure支持人员通知我,他们刚刚移动到本机库
      EasyAuthModule

      不过,一瞥似乎存在兼容性问题

      从我的web.config中删除任何浏览参考后,它现在工作正常


      Azure支持人员告诉我,他们正在努力解决这个问题,因此我们可以再次使用Gliesh。

      Sam7所述EasyAuthModule是一个HTTP模块,作为身份验证/授权功能的一部分注入网站进程。最近对此模块进行了更改,这可能会导致与同一应用程序中运行的其他HTTP模块发生冲突。是一个具有默认配置的HTTP模块,已知该配置会导致与最新版本的EasyAuthModule冲突

      编辑日期:2015年9月30日 最近对EasyAuthModule进行了更新,现在应该可以正常工作了


      警告,超技术细节如下


      问题在于,HTTP模块(如Spile模块)可能会在每个HTTP请求的开头读取HTTP请求实体体。通常情况下,这很好,因为ASP.NET托管模块可以读取ASP.NET请求的内容,而不会产生任何副作用。但是,这会阻止任何非ASP.NET代码读取请求正文-在本例中,Spile会阻止新版本的EasyAuthModule(已从ASP.NET托管模块转换为本机IIS模块)读取用户登录时从Azure AD发送的登录令牌。结果是HTTP 403.71响应

      要解决此问题,您可以禁用正在读取HTTP请求内容的第三方模块(例如,Spile),或将其配置为停止读取登录请求的请求内容(例如,我相信Spile有一种排除某些URL和/或仅读取请求头的方法-我将按照说明进行此操作)。这将允许EasyAuthModule读取Azure AD登录令牌并成功验证HTTP请求


      从长远来看,EasyAuthModule将进行重构,以确保它在第三方模块读取HTTP请求之前拦截这些请求,从而避免此类兼容性问题。不幸的是,目前您需要修改配置以解决此问题,直到永久修复。

      现在应该解决与Spiew兼容性有关的问题。