Я использую пользовательский фильтр авторизации, как показано ниже:
public class ActionAuthorizeAttribute : AuthorizeAttribute {
protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext) {
if(!httpContext.User.Identity.IsAuthenticated)
return false;
if(IsUserExcluded())
return false;
else
return IsRoleAuthorize(httpContext);
}
}
Я использую этот фильтр в верхней части каждого моего действия, и для проверки он авторизован, необходимо указать Имя действия, Имя контроллера и Имя области. Так есть ли способ получить эти имена в методе AuthorizeCore()
, например use System.Web.HttpContextBase
? если ответ «Нет», то как я могу получить эти имена и передать их атрибуту, очевидно, я не хочу добавлять каждое имя вручную, на самом деле что-то вроде ViewContext.RouteData.Values["Controller"]
в контроллерах:
[ActionAuthorize(actionName=Action, controller=ControllerName, area=AreaName)]
public ActionResult Index() {
return View();
}
Кто-нибудь имеет представление об этом?