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

时间:2019-04-26 09:14:44

标签: asp.net iis

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

如果出现 401.2 ,我还会有一个自定义错误页面。

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

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

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

  1. http://localhost->显示ERRORS\unauthorized.html
  2. http://localhost/index.html-> ERRORS\unauthorized.html 未显示,我可以访问该页面!

我还注意到了两件事:

  1. 如果我将页面更改为index.aspx,则会显示ERRORS\unauthorized.html
  2. 如果我使用其他statusCode,即404,则会显示HTML页面。

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

P.S。 我正在使用IIS 10和.NET 4.7

1 个答案:

答案 0 :(得分:0)

您使用什么身份验证? 假设您正在IIS级别上使用匿名身份验证,并且在asp.net或system.web层中使用某种身份验证,则当您访问静态文件时,由于静态文件处理了它们,因此asp.net管道不会出现在图片中处理程序。因此,授权不会显示出来。还请尝试将应用程序池配置为以集成模式运行,然后尝试一下,因为集成模式结合了iis和asp.net管道,如果您运行的是经典版本,则不会

还可以在行上添加另一条注释,401.2是服务器响应的状态,没有传递用户信息,客户端必须登录,这不一定要处理授权,这是一种方法验证服务器如何工作。