>我有一个只有授权用户才能访问的网站。
如果引发 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>
但是,当我尝试访问我的网站时,会发生以下情况:
- http://localhost -->显示
ERRORSunauthorized.html
; - http://localhost/index.html -->
ERRORSunauthorized.html
没有显示,我可以访问该页面!
我还注意到两件事:
- 如果我将页面更改为显示
ERRORSunauthorized.html
index.aspx
; - 如果我使用不同的
statusCode
,即 404 将显示 HTML 页面。
那我有什么不明白的呢?我的错误在哪里?
附言我正在使用 IIS 10 和 .NET 4.7
您使用什么身份验证?假设您在 IIS 级别使用匿名身份验证,并在 asp.net 或 system.web 层中使用某种身份验证,则当您访问静态文件时,asp.net 管道不会出现,因为它们由静态文件处理程序处理。因此,授权没有出现。ALso 尝试将应用池配置为在集成模式下运行并尝试,因为集成模式结合了 IIS 和 asp.net 管道,如果你在经典模式下运行,则不会
ALso 为了在该行上添加另一个注释,401.2 是服务器响应的状态,即没有传递用户信息并且客户端必须登录,这不一定必须处理授权,它是一种身份验证服务器工作方式。