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

公司打算从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

 

转载于:https://www.cnblogs.com/lemoningfido/p/4254593.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值