zoukankan      html  css  js  c++  java
  • MVC中ActionFilterAttribute用法并实现统一授权

    MVC中ActionFilterAttribute经常用来处理权限或者统一操作时的问题。

    先写一个简单的例子,如下:

    比如现在有一个用户管理中心,而这个用户管理中心需要登录授权后才能进去操作或浏览信息,这个时候我们不可能每一个页面都写一遍权限的判断,这个时候就需要我们进行统一判断权限,那么怎么统一权限呢?如果你了解MVC那么下面的代码应该很容易看懂,否则还是先看一下MVC基础吧。

    1.创建一个类(用来检查用户是否登录和用户权限)代码如下:

        // 过滤器
        public class MemberCheckAttribute : ActionFilterAttribute
        {
            //执行Action之前操作
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
               //判断是否登录或是否用权限,如果有那么就进行相应的操作,否则跳转到登录页或者授权页面
                if (true)
                {
                    //处理Action之前操作内容根据我们提供的规则来定义这部分内容

                    base.OnActionExecuting(filterContext);
                }
                else
                {

                    //跳转到登录页面
                    filterContext.HttpContext.Response.Redirect("/login.html");
                }
            }

    2.页面程序,也就是控制器里的程序,如下

    //MemberCheck是扩展特性,自定义特性名称是根据上面的类MemberCheckAttribute名进行变化

    //当访问/user/index时,程序会先走自定义特性MemberCheck然后再走Index

    [MemberCheck]
    public class UserController : Controller
    {

           public ActionResult Index()
            {
                return View();
            }

    }

    解释:ActionFilterAttribute有一下经常用到的方法

    OnActionExecuted  在执行操作方法后由 MVC 框架调用。
    OnActionExecuting  在执行操作方法之前由 MVC 框架调用。
    OnResultExecuted  在执行操作结果后由 MVC 框架调用。
    OnResultExecuting  在执行操作结果之前由 MVC 框架调用。

  • 相关阅读:
    Eclipse
    svn 常用
    spidermonkey编译
    float format 显示
    点击6次修改服务器地址
    UITextField字数限制
    UINavigationController
    运行时runtime
    IOS 技术与面试
    Cocos2dx笔记
  • 原文地址:https://www.cnblogs.com/dangzhenjiuhao/p/4495750.html
Copyright © 2011-2022 走看看