gpt4 book ai didi

asp.net - 带有 ASP.NET 的 IIS 中的自定义 401 页面

转载 作者:行者123 更新时间:2023-12-03 21:26:13 26 4
gpt4 key购买 nike

我有一个面向 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 页面。

谁能指出我正确的方向?

谢谢!

最佳答案

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

<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>

关于asp.net - 带有 ASP.NET 的 IIS 中的自定义 401 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32468174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com