我在web.config中设置了自定义错误,如下所示:
<customErrors mode="On" defaultRedirect="Error.aspx">
<error statusCode="403" redirect="AuthenticationRequired.aspx" />
<error statusCode="404" redirect="NotFound.aspx" />
</customErrors>
我在page_load事件上有一些检查用户权限的代码......如果失败,我会创建以下响应...但这不会被自定义错误捕获,任何人都有任何想法?
Response.StatusCode = 403;
Response.Status = "403 Forbidden";
Response.End();
答案 0 :(得分:0)
您应该尝试使用以下代码
Response.TrySkipIisCustomErrors = true;
如果您使用的是IIS 7。
答案 1 :(得分:0)
改为使用Web.Server httpErrors
:
<system.webServer>
<httpErrors errorMode="Custom" >
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="/NotFound.aspx" responseMode="Redirect" />
</httpErrors>
</system.webServer>