【发布时间】:2013-03-28 11:57:31
【问题描述】:
我通过在 filterConfig 注册中应用 HandleError 属性为应用程序启用了全局错误处理。
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
然后我使用自定义错误 (web.config) 希望为每个服务器错误显示友好的错误消息。
<customErrors mode="On" ></customErrors>
对于大多数异常,这似乎工作正常,并且我得到了预期的行为,因为正在显示自定义错误页面视图(共享视图文件夹中的 Error.cshtml)。
但是我最近注意到,如果抛出的错误是 UnauthorizedAccessException,我看到的不是这种行为。
我对此感到有些困惑,因为在 fiddler 中我看到这个 UnauthorizedAccessException 异常返回一个普通的 500 内部服务器错误,就像标准异常一样。
那么为什么标准异常会遵守我的 customError 设置,而 UnauthorizedAccessException 却没有呢?
我怎样才能让它们表现相同,因为它们本质上都是一个错误,我想阻止最终用户看到。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 authorization custom-error-pages custom-error-handling