Если вы используете MVC 3, я бы порекомендовал написать свой actionfilter , который затем вы можете применить глобально .
Небольшой пример кода:
public class HandleSessionTimeoutAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(FilterExecutingContext filterContext)
{
// Do whatever it is you want to do here.
// The controller and request contexts, along with a whole lot of other
// stuff, is available on the filter context.
}
}
А потом в вашем Global.asax.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// Register global filter
GlobalFilters.Filters.Add(new HandleSessionTimeoutAttribute());
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}