近日来研究了RBAC模型,参考了网上诸多例子,而后利用WPF技术实现了一个基于角色的权限菜单的简单示例,例子非常简单,重在这种模型的应用。将这些概念及例子做一个总结,以便大家交流学习。
RBAC模型主要是首先将访问权限与角色相关联,然后角色再与用户相关联。
主要分为三个部分:User用户,Role角色,及Permission权限。
首先设计数据表:
Users表:UserID,UserName,UserPwd,RoleID;
Role表:RoleID,RoleName;
Permission表:PermissionID,PermissionName;
RolePermission表:RolePermissionID,RoleID,PermissioID;
设计好数据表以后,就开始项目的编写,因为这段时间研究的是MVVM模式的应用,因此,使用了MVVM模式编写此例。
项目分为Model,View及ViewModel三个部分。Model只要的功能是实体类和提供的服务。实体类是对事物属性抽象构成的类,即代表事物的属性集合,只有属性,没有方法。所提供的服务主要是通过访问数据存储获取数据,来生成实体类的实例,为实体类实例提供数据。ViewModel是View和Model之间的纽带,其过程是将View绑定到ViewModel上,而同时有包装了Model的实体及服务。当用户对界面操作时,会引发ViewModel的变化,ViewModel调用Model中的服务,修改其包装实体或实体集。由于这些实体或实体集同样被绑定到界面上,因此,界面对用户的操作做出响应。
在Service中有两个服务,分别是对于权限的判断,就主界面的显示。
PermissionServie.cs中的内容:
public class PermissionServie : IPermissionServie
{
public static int userIDstatic;
public PermissionServie()
{
userIDstatic = 0;
}
/// <summary>