En ASP.NET MVC podría escribir una custom global action filter.
ACTUALIZACIÓN:
como se solicita en la sección de comentarios que aquí es un ejemplo de cómo tal filtro podría ser:
public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var fooCookie = filterContext.HttpContext.Request.Cookies["foo"];
// TODO: do something with the foo cookie
}
}
Si desea realizar la autorización basada en el valor de la cookie , sería más correcto implementar la interfaz 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();
}
}
}
Si desea que este filtro de acción a ejecutar en cada solicitud para cada acción del controlador se podía registrarlo como un filtro de acción global en su global.asax en el método RegisterGlobalFilters
:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyActionFilterAttribute());
}
Y si necesita este para ejecutar únicamente por acciones u controladores en particular, simplemente a decorar con este atributo:
[MyActionFilter]
public ActionResult SomeAction()
{
...
}
Tal vez esto http://stackoverflow.com/questions/2650269/how-do-i-get-certain-code-to-execute-before- every-single-controller-action-in-as – V4Vendetta
Desea poner un ActionFilterAttribute en el controlador –
Yo también o mire lo que está haciendo el método y si todavía se necesita en MVC, no tiene sentido portar algo que la nueva tecnología deja obsoleta. – TheRealTy