MarioBinder
11/4/2014 - 6:19 AM

SessionExpireFilterAttribute

SessionExpireFilterAttribute

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
    public class SessionExpireFilterAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var ctx = HttpContext.Current;
            if (ctx.Session["RegisteredUser"] == null || !filterContext.HttpContext.Request.IsAuthenticated)
            {
                FormsAuthentication.SignOut();
                ctx.Session.Clear();
                if (filterContext.HttpContext.Request.IsAjaxRequest())
                {
                    filterContext.Result = new JsonResult { Data = "_Logon_" };
                }
                else
                {
                    filterContext.Result = new RedirectToRouteResult(
                        new RouteValueDictionary {
                        { "Controller", "Account" },
                        { "Action", "LogOn" }
                });
                }
            }
            base.OnActionExecuting(filterContext);
        }
    }