No estoy seguro de MVC4, pero creo que es bastante similar a MVC5. Si ha creado un nuevo proyecto web -> busque Global.asax
y verá la siguiente línea FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
en el método Application_Start()
.
RegisterGlobalFilters
es un método en el archivo FilterConfig.cs
ubicado en la carpeta App_Start
.
Como dijo @ YngveB-Nilsen, ActionFilterAttribute
en mi opinión, es el camino a seguir. Agregue una nueva clase que se derive de System.Web.Mvc.ActionFilterAttribute
. Esto es importante porque System.Web.Http.Filters.ActionFilterAttribute
fallará con la siguiente excepción, por ejemplo.
La instancia de filtro dada debe implementar una o más de las siguientes interfaces de filtro: System.Web.Mvc.IAuthorizationFilter, System.Web.Mvc.IActionFilter, System.Web.Mvc.IResultFilter, System.Web.Mvc.IExceptionFilter, System.Web .Mvc.Filters.IAuthenticationFilter.
Ejemplo que escribe la solicitud en la ventana de depuración:
public class DebugActionFilter : System.Web.Mvc.ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
Debug.WriteLine(actionContext.RequestContext.HttpContext.Request);
}
}
En FilterConfig
-> RegisterGlobalFilters
-> añadir la siguiente línea: filters.Add(new DebugActionFilter());
.
Ahora puede capturar todas las solicitudes entrantes y modificarlas.