zoukankan      html  css  js  c++  java
  • 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是跳到登录页面

  • 相关阅读:
    表单提交时,更新的操作
    提交后刷新本页面与移除本页面的JS写法
    jquery的$.each如何退出循环和退出本次循环
    修改本机host文件,使upf报表操作变的快
    代码记录
    JQuery简介
    Ubuntu安装
    PHP笔记(PHP高级篇)
    将Session写入Memcache
    将Session写入数据库
  • 原文地址:https://www.cnblogs.com/jooucks/p/7363305.html
Copyright © 2011-2022 走看看