No estoy seguro de MVC4, pero creo que es bastante similar a MVC5. Si ha creado un nuevo proyecto web -> busque Global.asaxy verá la siguiente línea FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);en el método Application_Start().
RegisterGlobalFilterses un método en el archivo FilterConfig.csubicado en la carpeta App_Start.
Como dijo @ YngveB-Nilsen, ActionFilterAttributeen 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.ActionFilterAttributefallará 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.