zoukankan      html  css  js  c++  java
  • Asp.Net MVC中使用中间件对要访问的页面进行Session判断

    一、当我们开发一个网站的时候,会给网站加访问权限,比如:只有登录之后才能去访问某些页面。

      在Asp.Net MVC中提供了两种方法,都是基于AOP的思想诞生的,第一种就是利用C#中的特性,写一个特性标签,然后在特性标签中去做对应的处理,使用时,只需要将特性标签加到对应的方法上即可,就像Python中的装饰器一样。

      第二种方法,使用中间件,相当于一个中间层,比如访问一个网站的页面时,必须先经过中间件进行处理之后才能进行后续的操作,这种方式需要我们写一个控制器的基类,然后让需要进行验证的控制器继承这个中间件控制器基类即可,这样当我们访问这些继承了控制  器中间件的基类的方法时,就必须先执行中间件中的方法,这样就能在中间件中执行一些操作,比如Session校验。

    二、这里主要介绍一下第二种中间件的方式

    下面是自定义的一个控制器的中间件基类,主要是

    public class BaseController : Controller
        {
         ///在ASP.net MVC 中其他的控制器只要继承类这个中间件控制器,那么当访问其中的Action方法时,都会先执行这个方法判断用户是否已经登录
    protected override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); if(Session["azroad_name"] is null) { filterContext.Result = RedirectToAction("Login", "Login");//跳转到登录的控制器 } else { if((Session["azroad_name"].ToString() != "Azroad")) { filterContext.Result = RedirectToAction("Login", "Login");//跳转到登录的控制器 } } } }

    三、控制器中间件的用法

    ///使用时只需要继承中间件控制器即可
    public class SMTController : BaseController
        {
            // GET: SMT
            [HttpGet]
            public ActionResult Index(int id = 1)
            {
                string sql = "STM.FindDataCondition";//分页查询数据
                SmtPage smtpage = new SmtPage();
                SmtPostData postData = GetPostData();
                smtpage.CurrentPage = id;
                smtpage.SmtModels = GetSmtModel(postData,sql);
                smtpage.Count = GetOrderCount(postData);
                return View(smtpage);
            }
    }

    当访问SMT控制器下的Index方法时,就会自动进行中间件中的判断操作,如果当前服务端没有用户的session存在,那么就会跳转到Login控制器下的Login页面,也就是跳转到登录页面。

  • 相关阅读:
    编译安装MongoDB C++ Driver (win8.1 vs2013)
    Convert Sorted Array to Binary Search Tree
    Sqrt(x) 牛顿迭代法
    Sublime Text 2 新建C++ build system
    Add Two Numbers
    Two Sum *
    从TCP协议的原理来谈谈rst复位攻击
    【转载】专访阿里陶辉:大规模分布式系统、高性能服务器设计经验分享
    一个低级Illegal instruction错误的定位--忽略编译期警告就得加倍偿还
    【转载】“惊群”,看看nginx是怎么解决它的
  • 原文地址:https://www.cnblogs.com/yuanshuang-club/p/13524857.html
Copyright © 2011-2022 走看看