使用ActionFilterAttribute实现MVC后台受权

受权就是咱们在用户未登陆的状况下不容许访问一些页面,只有登陆后才能进行访问一些页面。mvc

在mvc中咱们能够使用ActionFilterAttribute来进行受权验证来阻止一些未经受权的直接访问的页面。ide

首先再咱们的项目中根目录中建立一个文件夹命名为Filter,在该文件夹内建立一个普通的类,注意:类名必须以 "Attribute" 结尾。spa

下图代码为受权验证类:code

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Mvc;
 6 
 7 namespace MVC_CRUD.filters
 8 {
 9     public class MyAuthorizeFilterAttribute : ActionFilterAttribute//必须继承于ActionFilterAttribute
10     {
11         public override void OnActionExecuted(ActionExecutedContext filterContext)//重写OnActionExecuted,
12         {
13             base.OnActionExecuted(filterContext);
14             HttpContextBase http = filterContext.HttpContext;
15             if (http.Request.Cookies["adminName"]==null)//判断是否有cookise(用户登陆存入的cookise)
16             {
17                 http.Response.Redirect("http://localhost:1299/Home/login");//要跳转的页面(通常都是跳转至登陆页)
18             }
19         }
20     }
21 }

写好受权后,咱们要在须要受权的控制器中加上咱们的特性,好比我要在Index上验证未登陆用户不可访问,能够在它的Action上方加上[MyAuthorizeFilter]blog

注意咱们要在using 引用咱们的文件,不然会找不到。继承

 

 若是整个控制器的Action中须要受权验证,那么能够在控制器类上方加上[MyAuthorizeFilter]。io

这样能够达到当咱们运行一个受权的页面在未登陆的状况下自动跳转到登陆页面。class

相关文章
相关标签/搜索