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