Я бы, вероятно, заглянул в ActionFilterAttribute
, который можно применить глобально (для всех контроллеров) в классе MvcApplication
, метод RegisterGlobalFilters
. Что-то вроде:
public class FilterTrafficAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Log and track visitor count for the hour here, and decide if they
// should proceed on or not.
// You can also change the ActionResult of the request by altering the
// filterContext.Result.
}
}
Тогда в MvcApplication
:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandlerErrorAttribute());
// add this line:
filters.Add(new FilterTrafficAttribute());
}
Тогда вы гарантируете, что он применяется ко всем вызовам и обладает большой способностью обработки. Есть и другие настройки, которые могут вас заинтересовать ActionFilterAttribute