ActionFilterAttribute - применять к действиям определенного типа контроллера
используя ActionFilterAttribute, чтобы сделать пользовательскую логику аутентификации. Атрибут будет использоваться только в производном классе Controller, который содержит мою логику аутентификации.
Вот's мой Контроллер, полученный из моего пользовательского класса контроллера, и пример атрибута:
public class MyController : CustomControllerBase
{
[CustomAuthorize(UserType = UserTypes.Admin)]
public ActionResult DoSomethingSecure()
{
return View();
}
}
Вот'Вот пример моего ActionFilterAttribute:
public class CustomAuthorizeAttribute : ActionFilterAttribute
{
public MyUserTypes UserType { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
myUser user = ((CustomControllerBase)filterContext.Controller).User;
if(!user.isAuthenticated)
{
filterContext.RequestContext.HttpContext.Response.StatusCode = 401;
}
}
}
Работает отлично.
Вот's вопрос: Могу ли я требовать, чтобы этот атрибут ТОЛЬКО использовался в Действиях в моем пользовательском типе контроллера?