Это мой CustomAuthorizeAttribute класс:Как переопределить глобальный атрибут AuthorizeAttribute, когда добавить тот же атрибут AuthorizeAttribute для некоторого Action MVC?
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public string ControllerName { get; set; }
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (ControllerName != "pass")
{
// stop or redirect
}
}
}
зарегистрировать его глобальные фильтры для все контроллера может использовать:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new AdminAuthorizeAttribute());
}
Для некоторых конкретных действий я добавить его Пары ControllerName:
[AdminAuthorize(ControllerName="pass")]
public ActionResult Index()
{
return View();
}
Но проблема теперь в OnAuthorization(), ControllerName всегда получает null при выполнении конкретного действия.
Это потому, что я не могу использовать глобальный authorizeAttribute и такое же Attibute для какого-либо конкретного действия вместе ?? Зачем? Я всегда думал, что если добавить определенный атрибут AuthorizeAttribute для конкретного действия и добавить атрибут в глобальный фильтр, конкретное действие получит приоритет высоты.
Update1:
Если источник проблемы является 2 разрешено все выполнить. то как сделать переопределить глобальный авторизованный фильтр, когда я добавлю тот же атрибут AuthorizeAttribute для некоторых действий? (Только друг пары, я просто хочу игнорировать глобальную уполномоченные, когда я добавляю один для некоторых действий)
Вы можете изменить свойство Order атрибута вручную, чтобы оно было fir сначала. –