In ASP.NET MVC si potrebbe scrivere un custom global action filter.
UPDATE:
Come richiesto nella sezione commenti qui è un esempio di come tale filtro potrebbe essere simile:
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var fooCookie = filterContext.HttpContext.Request.Cookies["foo"];
// TODO: do something with the foo cookie
}
}
Se si desidera eseguire l'autorizzazione in base al valore del cookie , sarebbe più corretto implementare l'interfaccia IAuthorizationFilter:
public class MyActionFilterAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
var fooCookie = filterContext.HttpContext.Request.Cookies["foo"];
if (fooCookie == null || fooCookie.Value != "foo bar")
{
filterContext.Result = new HttpUnauthorizedResult();
}
}
}
Se si desidera che questo filtro azione da eseguire su ogni richiesta per ogni azione di controllo si potrebbe registrarlo come un filtro d'azione globale nel vostro global.asax nel metodo RegisterGlobalFilters
:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyActionFilterAttribute());
}
E se hai bisogno di questo per eseguire solo per particolari azioni o controllori semplicemente li decorano con questo attributo:
[MyActionFilter]
public ActionResult SomeAction()
{
...
}
fonte
2012-03-01 06:54:24
Forse questo http://stackoverflow.com/questions/2650269/how-do-i-get-certain-code-to-execute-before- ogni singolo controller-action-in-come – V4Vendetta
Si desidera inserire un ActionFilterAttribute sul controller –
Vorrei o guarda cosa sta facendo il metodo e se è ancora necessario in MVC, nessun punto che porti qualcosa che la nuova tecnologia rende obsoleta. – TheRealTy