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

关于ASP.NET MVC权限控制,通过自定义属性Attribute实现

时间:2015-01-27 23:26:00      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

公司打算从webform转到MVC架构,一直困扰我的就是权限控制问题。对于每一个模块,都需要判断该用户是否有访问的权限,每个用户的权限都不同,没有办法用角色权限来控制。在借鉴之前webform的实现方式和MVC的实例应用程序后,想到通过自定义Attribute来实现,实现代码如下:
 

 1     public sealed class FunctionFilterAttribute : ActionFilterAttribute
 2     {
 3         private string _functionID;
 4         public FunctionFilterAttribute(string funcID)
 5         {
 6             this._functionID = funcID;
 7         } 9         public override void OnActionExecuting(ActionExecutingContext filterContext)
10         {
11             HttpContextBase context = filterContext.HttpContext;
12             IList<string> ids = (IList<string>)context.Session["ID"];
13             if (ids == null || !ids.Contains(_functionID))
14             {
15                 context.Response.Write("<script>alert(‘no‘)</script>");
16             }
17             base.OnActionExecuting(filterContext);
18         }
19     }

 

调用方法是标记在所需权限的Action前面或者Controller前面,如下:

1 [FunctionFilter("001")]
2 public ActionResult Index()

或者:

1 [FunctionFilter("002")]
2 public class AccountController : Controller

传入的值就是需要判断的权限ID

 

关于ASP.NET MVC权限控制,通过自定义属性Attribute实现

标签:

原文地址:http://www.cnblogs.com/lemoningfido/p/4254593.html

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