首页 > 代码库 > 关于ASP.NET MVC权限控制,通过自定义属性Attribute实现
关于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
关于ASP.NET MVC权限控制,通过自定义属性Attribute实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。