使用ASP.NET的IIS中的自定义401页面
我有一个面向ASP.NET网站的Internet,我想通过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:inetpubcusterr" 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>
链接地址: http://www.djcxy.com/p/71849.html
上一篇: Custom 401 page in IIS with ASP.NET
下一篇: ASP.NET WindowsAuthentication custom 401 Unauthorized error page