在ASP.NET MVC中实现基于URL的权限控制
2009-07-09 08:24
666 查看
本示例演示了在ASP.NET MVC中进行基于URL的权限控制,由于是基于URL进行控制的,所以只能精确到页。这种权限控制的优点是可以在已有的项目上改动极少的代码来增加权限控制功能,和项目本身的耦合度低,并且实现起来也比较简单。缺点是权限控制不够精确,不能具体到某一具体的按钮或者某一功能。
在数据库中新建2个表。PermissionItem表用于保存权限ID和页面路径的关系,一个权限ID可以有多个页面,一般同一个权限ID下的页面是为了实现同一个功能。PermissionList表用于保存用户所具有的权限。
public static List<PermissionItem> GetPermissionItems()
6
GetUserPermission方法是将用户所具有的权限ID保存到一个一维Int32数组中。这个信息每个用户是不同的,但是会经常使用到,所以存入Session。
1public static Int32[] GetUserPermission(int userID)
7
再新建一个UrlAuthorizeAttribute类,继承自AuthorizeAttribute,这是一个Filter。我们重写它的OnAuthorization方法,以在ASP.NET页生命周期身份验证阶段执行它。
1public override void OnAuthorization(AuthorizationContext filterContext)
6
至此,主要的工作都已经完成了的。接下来我们只需要在需要进行权限控制的Action或Controller前加上[UrlAuthorize],这些Action或Controller中的所有Actions就会自动被UrlAuthorize这个Filter进行处理。如果某一个Action被标上了[UrlAuthorize],而数据库中又不存在该页面对应的权限ID,那么根据示例的代码,所有用户都将无法访问这个页面,如果需要更改这个设置,可以修改上面“注1”下面的2行代码。
示例代码下载
在数据库中新建2个表。PermissionItem表用于保存权限ID和页面路径的关系,一个权限ID可以有多个页面,一般同一个权限ID下的页面是为了实现同一个功能。PermissionList表用于保存用户所具有的权限。
public static List<PermissionItem> GetPermissionItems()
6
GetUserPermission方法是将用户所具有的权限ID保存到一个一维Int32数组中。这个信息每个用户是不同的,但是会经常使用到,所以存入Session。
1public static Int32[] GetUserPermission(int userID)
7
再新建一个UrlAuthorizeAttribute类,继承自AuthorizeAttribute,这是一个Filter。我们重写它的OnAuthorization方法,以在ASP.NET页生命周期身份验证阶段执行它。
1public override void OnAuthorization(AuthorizationContext filterContext)
6
至此,主要的工作都已经完成了的。接下来我们只需要在需要进行权限控制的Action或Controller前加上[UrlAuthorize],这些Action或Controller中的所有Actions就会自动被UrlAuthorize这个Filter进行处理。如果某一个Action被标上了[UrlAuthorize],而数据库中又不存在该页面对应的权限ID,那么根据示例的代码,所有用户都将无法访问这个页面,如果需要更改这个设置,可以修改上面“注1”下面的2行代码。
示例代码下载
相关文章推荐
- 在ASP.NET MVC中实现基于URL的权限控制
- 在ASP.NET MVC中实现基于URL的权限控制
- 在ASP.NET MVC中实现基于URL的权限控制
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- ASP.NET MVC 中实现基于角色的权限控制的处理方法
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET MVC 中如何实现基于角色的权限控制
- ASP.NET MVC 中如何实现基于角色的权限控制
- 基于ASP.NET MVC URL 权限控制
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
- ASP.net MVC 基于角色的权限控制系统的实现
- ASP.NET MVC实现权限控制
- ASP.NET MVC(模型(Model),视图(View)和控制Controller)实践:实现身份验证权限管理
- ASP.NET MVC中权限控制的简单实现
- ASP.NET MVC中权限控制的简单实现
- ASP.net MVC 基于角色的权限控制系统的实现
- ASP.NET Mvc Preview 5 演示Demo #2 实现Membership角色权限控制
- asp.net 基于forms验证的目录角色权限的实现
- Asp.net MVC中的全局权限验证方法及实现