基于MVC控制器的Custom 400重定向

时间:2010-06-21 19:41:17

标签: c# asp.net-mvc

有没有办法在每个控制器的基础上覆盖默认的400重定向(在web.config中设置)?

假设我有一个管理员控制器和一个帐户控制器,每个控制器都有一个自定义的AuthorizeAttribute。有两种不同的登录表单,当AdminAuthorize属性为false时,我需要管理员控制器重定向到它。

1 个答案:

答案 0 :(得分:1)

您可以随时实施自己的authorization attribute

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
    {
        var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
        var actionName = filterContext.ActionDescriptor.ActionName;
        // TODO: Now that you know the controller name and the action name
        // act accordingly or call the base method
    }
}