Как создать частичный класс контроллера для переопределения OnAuthorization? - PullRequest
2 голосов
/ 26 апреля 2010

Я пытаюсь изменить метод 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) ': нет найден подходящий метод для переопределения

Может ли кто-нибудь мне помочь?

1 Ответ

1 голос
/ 26 апреля 2010

Вы должны создать свой собственный базовый класс контроллера:

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"] может быть Test или TEST или tEST.

...