码迷,mamicode.com
首页 > Web开发 > 详细

MVC中ActionFilterAttribute用法并实现统一授权

时间:2015-05-11 23:54:33      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

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 框架调用。

MVC中ActionFilterAttribute用法并实现统一授权

标签:

原文地址:http://www.cnblogs.com/dangzhenjiuhao/p/4495750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!