public void OnAuthorization(AuthorizationContext filterContext)
        {
            var isAuthenticated = filterContext.HttpContext.User.Identity.IsAuthenticated;
            bool? isGoogleOAuthLogin =(bool?) filterContext.HttpContext.Application["google_logged_in_users"];
            if (!isAuthenticated)
                RedirectToAccessDeniedPage(filterContext);

           
            if (userContext == null)
            {
                if (isGoogleOAuthLogin.GetValueOrDefault())
                {
                    if (filterContext.HttpContext.Request.IsAjaxRequest())
                    {
                        Sitecore.Diagnostics.Log.Info("Session expired.Redirecting user to login page...", this);        
                        response.RedirectUrl = some page;                                           
                        filterContext.HttpContext.Response.StatusCode = 441;                       
                        return;
                    }
                    else
                    {
                        Sitecore.Diagnostics.Log.Info("Session expired.Redirecting user to login page...", this);
                        string returnUrl = some login page;
                        filterContext.Result = new RedirectResult(returnUrl);
                        return;
                    }
                }
                else if (filterContext.HttpContext.Request.IsAjaxRequest())
                {
                        Sitecore.Diagnostics.Log.Info("Session expired.Redirecting user to login page...", this);        
                        response.RedirectUrl = some different page;                                           
                        filterContext.HttpContext.Response.StatusCode = 440;                       
                        return
                }
                else
                {
                    if (!HttpContext.Current.Response.IsRequestBeingRedirected)
                    {                       
                        Sitecore.Diagnostics.Log.Info("Session expired.Redirecting user to login page...", this);
                        string returnUrl = some differnt different page;
                        filterContext.Result = new RedirectResult(returnUrl);
                        return;
                    }
                }
                return;
            }            
        }