如何创建一个Controller部分类来覆盖OnAuthorization?

时间:2010-04-26 12:32:00

标签: asp.net-mvc class controller partial

我正在尝试更改方法OnAuthorization,以便它可用于任何应用程序......这样:

public partial class Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }

}

但显示编译错误:

  

Controller.OnAuthorization(System.Web.Mvc.AuthorizationContext)':no   找到合适的方法来覆盖

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您必须创建自己的基本控制器类:

public partial class BaseController : Controller
{
    protected override void OnAuthorization(AuthorizationContext filterContext)
    {
        if ((string)(filterContext.RouteData.Values["action"]) == "test")
        {
            filterContext.Result = new HttpUnauthorizedResult();
        }
    }
}

在代码中使用BaseController。

请记住,filterContext.RouteData.Values["action"]可以是TestTESTtEST