asp.net 403响应代码未触发自定义错误

时间:2014-03-04 15:15:20

标签: c# asp.net custom-errors

我在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();

2 个答案:

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