自定义错误重定向无法正常工作

时间:2013-05-29 08:33:38

标签: c# asp.net security web-config http-status-codes

我正在尝试确保出于安全原因不向用户发送任何非标准错误消息。通常我有标准的错误消息设置,它工作得很好。我在web.config中使用这些标记:

<httpErrors  errorMode="Custom">
  <remove statusCode="404" subStatusCode="-1"/>
  <remove statusCode="401" subStatusCode="-1"/>
  <remove statusCode="403" subStatusCode="-1"/>
  <remove statusCode="501" subStatusCode="-1"/>
  <remove statusCode="400" subStatusCode="-1"/>
  <remove statusCode="411" subStatusCode="-1"/>
  <error statusCode="403" path="/ErrorPages/UnAuthorized.aspx" responseMode="ExecuteURL"/>
  <error statusCode="404" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="501" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="400" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="411" path="/ErrorPages/Oops.aspx" responseMode="ExecuteURL"/>
  <error statusCode="400" path="/Account/Login.aspx" responseMode="ExecuteURL"/>
</httpErrors>

我遇到的问题是有人指出有些403,400,501错误消息仍未被重定向。

导致此问题的网址是:

www.example.com/con/ - asp.net error

wwww.example.com/..%5CStorage%5CDocuments%5C8849145d-174a-41ab-9676-0ae19d6ab741    - 403 error
来自无效内容长度的

和411错误。

1 个答案:

答案 0 :(得分:12)

您使用的是VisualStudio Development Server还是IIS7 Express? 如果您正在使用它,那么您应该尝试:

<customErrors mode="On" >
  <error statusCode="503" redirect="/Views/Shared/Error.htm"/>
</customErrors>

如果没有,试试这个:

<httpErrors existingResponse="Replace" defaultResponseMode="Redirect" errorMode="Custom">
  <remove statusCode="501"/>
  <error statusCode="501" responseMode="Redirect" path="/ErrorPages/Oops.aspx"/>          
 </httpErrors>