我一直在尝试重定向错误消息401.2:未经授权:由于以下服务器配置而登录失败:
<customErrors defaultRedirect="Error.aspx" mode="On">
<error statusCode="401" redirect="Unauthorized.aspx" />
</customErrors>
但实际上它并没有重定向,仍然显示默认的“访问被拒绝”页面。我做错了什么?
我一直在尝试重定向错误消息401.2:未经授权:由于以下服务器配置而登录失败:
<customErrors defaultRedirect="Error.aspx" mode="On">
<error statusCode="401" redirect="Unauthorized.aspx" />
</customErrors>
但实际上它并没有重定向,仍然显示默认的“访问被拒绝”页面。我做错了什么?
void Application_EndRequest(object sender, EventArgs e)
{
if (Response.StatusCode == 401)
Response.Redirect("Unauthorized.aspx");
}
首先尝试这个:
在您的Unauthorized.aspx.cs页面的Page_Load方法中设置:
private void Page_Load(System.Object sender, System.EventArgs e)
{
//Put user code to initialize the page here
Response.StatusCode = 401;
Response.TrySkipIisCustomErrors = true;
}
详细信息请参阅:
HttpResponse.TrySkipIisCustomErrors 属性
第二次尝试此方法:
除 <customErrors>
标签之外,使用此方法绕过 IIS 错误页面:
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>