【发布时间】:2014-06-27 05:20:08
【问题描述】:
我在 ASP.NET MVC 5 应用程序中使用自定义授权属性,如下所示:
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext context)
{
if (context.HttpContext.Request.IsAuthenticated)
{
context.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
}
else
{
base.HandleUnauthorizedRequest(context);
}
}
}
在我的 web.config 的 system.web 部分中,我提到了错误路径,例如:
<system.web>
<customErrors mode="On" defaultRedirect="/Error/Error">
<error statusCode="403" redirect="/Error/NoPermissions"/>
</customErrors>
</system.web>
但我从未被重定向到/Error/NoPermissions 的自定义错误页面。相反,浏览器会显示一般错误页面,上面写着“HTTP Error 403.0 - Forbidden”。
【问题讨论】:
-
你有名为 Error 的控制器,里面有 Action NoPermissions 吗?
-
更改
的配置 -
它没有用。好吧,在 MVC 4 应用程序中,我有类似
之类的配置,并且它有效很好。 -
嗯,关于自定义错误,MVC 4 和 MVC5 之间没有太大区别。那里还有其他问题。也许你的控制器。确保它没有授权属性。
-
我的错误控制器/操作没有任何属性。
标签: asp.net-mvc custom-error-pages custom-errors