ASP.NET MVC权限管理
时间:2010-10-28 来源:hackee
为能够更灵活、更细粒度地控制权限,需要某种方法能够在配置文件(如web.config)中定义权限,这样才能在不需要重新编译代码的情况下,通过修改配置文件即可改变应用程序的授权。一个简单的场景,[UserAuthorize(Roles = "Managers")] ,与系统自带的[Authorize(Roles = "Managers")] ,区别在于:后面的权限控制是通过Membership Provider完成的,即当前用户有没有权限是通过Context.User.IsInRole("Managers")来判断的;第一个则是自定义ActionFilter通过读取配置项来完成权限控制的。
废话不说,上代码:
1. 从系统自带的AuthorizeAttribute继承:
public class CustomAuthorizeAttribute : AuthorizeAttribute {......
}
2. override其中关键的一个方法:AuthorizeCore
protected override bool AuthorizeCore(HttpContextBase httpContext) {...
}
3. 实现自定义授权:
IPrincipal user = httpContext.User;
if (!user.Identity.IsAuthenticated) {
return false;
}
...
相关阅读 更多 +