【问题标题】:Custom 401 page in IIS with ASP.NET使用 ASP.NET 在 IIS 中自定义 401 页面
【发布时间】:2015-09-08 22:19:53
【问题描述】:

我有一个面向 Internet 的 ASP.NET 网站,我想通过 Windows 身份验证来保护它。我将我的 web.config 文件设置为:

<system.web>
 <authentication mode="Windows" />
 <authorization>
    <allow users="*"/>
    <deny users="?"/>        
 </authorization>

然后我在 IIS 7.5 中禁用了匿名访问并启用了 Windows 身份验证。

这会导致显示我的 Windows 凭据的提示框,但是单击“取消”会给我一个标准的 401 错误页面。我想显示一个静态 HTML 文件来代替这条消息,但是我无法让它工作,我尝试了各种设置的组合,例如:

<httpErrors errorMode="Custom" existingResponse="Replace" lockAllAttributesExcept="errorMode"> <error statusCode="401" prefixLanguageFilePath="c:\inetpub\custerr" path="MyCustom401.htm" /> </httpErrors>

<customErrors mode="Off" defaultRedirect="ErrorPage.aspx">
    <error statusCode="401" redirect="MyCustom401.aspx" />
</customErrors>

我希望任何人输入正确的 Windows 凭据都可以正常进入网站,但那些输入无效或详细信息的人可以查看自定义 HTML 页面。

谁能指出我正确的方向?

谢谢!

【问题讨论】:

  • Web 浏览器通常会显示它们的错误页面版本,所以您真的要更改 IIS 版本吗?
  • 我想向用户显示一个自定义页面,该页面将指导他们如何获取有效凭据以登录网站。所以是的,我希望能够覆盖他们看到的错误页面。
  • 这根本不可能,因为 Web 浏览器端设置具有最高优先级。您必须重定向到特定页面并返回 200 响应代码而不是 401。

标签: asp.net iis iis-7.5


【解决方案1】:

要确保您允许匿名用户访问包含错误文件的路径,否则他们将无法获得错误页面。例如,如果您的错误文件位于目录中(错误),则此处是一个配置文件,该配置文件应为您提供预期的结果。首先它禁用所有站点的匿名访问,然后为“错误”文件夹打开它:

<configuration>
    <system.webServer>
        <security>
            <authorization>
                <add accessType="Deny" users="?" />
            </authorization>
        </security>
        <httpErrors errorMode="Custom">
            <error statusCode="401" subStatusCode="2" path="/errors/unauthorized.aspx" responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>

    <location path="errors">
        <system.webServer>
            <security>
                <authorization>
                    <clear />
                    <add accessType="Allow" users="*" />
                </authorization>
            </security>
        </system.webServer>
    </location>
</configuration>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2012-06-01
    • 2011-06-30
    • 2011-01-02
    • 2012-03-09
    • 2017-02-16
    相关资源
    最近更新 更多