ASP.NET/IIS HttpErrors 和访问被拒绝响应



>我有一个只有授权用户才能访问的网站。

如果引发 401.2,我还有一个自定义错误页面。

我通过以下方式配置web.config

  <system.webServer>             
    <httpErrors errorMode="Custom">
      <remove statusCode="401" subStatusCode="-1" />
      <error statusCode="401" subStatusCode="-1"
             path="ERRORSunauthorized.html"
             responseMode="File">
      </error>
    </httpErrors>    
  </system.webServer>

但是,当我尝试访问我的网站时,会发生以下情况:

  1. http://localhost -->显示ERRORSunauthorized.html;
  2. http://localhost/index.html -->ERRORSunauthorized.html没有显示,我可以访问该页面!

我还注意到两件事:

  1. 如果我将页面更改为显示ERRORSunauthorized.html index.aspx;
  2. 如果我使用不同的statusCode,即 404 将显示 HTML 页面。

那我有什么不明白的呢?我的错误在哪里?

附言我正在使用 IIS 10 和 .NET 4.7

您使用什么身份验证?假设您在 IIS 级别使用匿名身份验证,并在 asp.net 或 system.web 层中使用某种身份验证,则当您访问静态文件时,asp.net 管道不会出现,因为它们由静态文件处理程序处理。因此,授权没有出现。ALso 尝试将应用池配置为在集成模式下运行并尝试,因为集成模式结合了 IIS 和 asp.net 管道,如果你在经典模式下运行,则不会

ALso 为了在该行上添加另一个注释,401.2 是服务器响应的状态,即没有传递用户信息并且客户端必须登录,这不一定必须处理授权,它是一种身份验证服务器工作方式。

最新更新