MVC5中攔截器跳轉登錄頁面


    public class ExceptionFillters : FilterAttribute, IExceptionFilter
    {
        public void OnException(ExceptionContext filterContext)
        {
            throw new System.NotImplementedException();
        }
    }
    public class ActionFillters : FilterAttribute, IActionFilter
    {
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            if (filterContext.RequestContext.HttpContext.Session == null) return;
            var token = filterContext.RequestContext.HttpContext.Session["userId"];
            if (token == null)
            {
                filterContext.RequestContext.HttpContext.RedirectLocal("/Role/LoginHome");
            }
            //執行action后執行這個方法 比如做操作日志
        }

        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            //執行action前執行這個方法,比如做身份驗證
        }
    }
    public class ResultFillters : FilterAttribute, IResultFilter
    {
        public void OnResultExecuted(ResultExecutedContext filterContext)
        {
            //執行完action后跳轉后執行
        }

        public void OnResultExecuting(ResultExecutingContext filterContext)
        {
            //執行完action后跳轉前執行
        }
    }

實現這幾個方法后

在控制器中的視圖方法上加入

        [ResultFillters]
        [ActionFillters]
        [ExceptionFillters]
        public ActionResult Index(int currentPageIndex = 1)
        {
            return View();
        }
        

這就實現了攔截,未登錄的用戶,session為null是跳到登錄頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM