找论文网 > 计算机论文 > 计算机应用 >

Net平台下基于角色的访问控制系统的设计与实现(2)

由于资源访问方式枚举量的定义各不相同,如何以统一的接口方式获取不同资源的访问方式是本平台设计的一个难点。这里采用属性AccessType统一返回资源访问方式枚举量的类型(Type)对象。通过下列代码可以得到访问方式枚举量的所有信息(C#):

Type t =resourceNode.AccessModeType;

FieldInfo[] fs=t.GetFields(BindingFlags.DeclaredOnly|

Binding Flags.Static|BindingFlags.Public);

int[] enumVals =new int[fs.Length];

string[] enumNames= new string[fs.Length];

int  i =0;

foreach(FieldInfo f  in fs)

{

enumVals[i]=f.GetValue(null);

DisNameAttribute[] ds=f.GetCustomAttribute(typeof(DisNameAttribute),false);

If(ds.Length != 0)

      enumNames[I]=ds[0].Name;

}

  上述代码中,enumVals数组中存储了所有访问方式的枚举值,enumNames数据组中存储了各个访问方式的显示用名称。

3.3         访问权限

权限是指用户对具体资源的访问许可,权限和资源密不可分。这里权限用一个二元组来表示:

Permission(Resource,AccessMode)

其中Resource表示一个具体资源,AccessMode是用户对此资源的所授权的访问方式。需注意的是,由于AccessMode设计成可按位组合,所以此二元组表示了用户对一个资源的所有访问权限。

3.4         角色

角色可由系统管理员或授权用户灵活定制。角色具有唯一且不重用的ID。

3.4.1          角色的组织

角色之间采用组合关系,一个角色可以包含其它多个角色,一个角色的权限是它本身及其所包含的其它角色所拥有的权限的集合。

3.4.2          角色表

  Role_Table

字段

类型

描述

ID

int

主键

Name

string

名称

Status

int

状态

 

角色的所有相关信息均记录到数据库中的角色表Role_Table。

3.5         角色的权限分配

权限分配是指为角色配置某种权限。可以用三元组(Role,Resource,AccessMode)表示,即Role角色对Resource资源可以进行AccessMode的操作。

3.5.1          角色权限关联表

    RolePermission_Table

字段

类型

描述

RoleID

int

外键

ResourceID

Int64

外键

AccessMode

int

访问方式

 

  角色的所有授权信息均存储到角色权限关联表RolePerssion_Table。

3.6         用户

用户可由系统管理员或授权用户灵活增删。用户具有唯一且不重用的ID。

3.6.1          用户的组织

 各个用户相互独立,不存在继承或组合关系。

3.6.2          用户表

    User_Table

字段

类型

描述

ID

int

主键

Name

string

名称

Password

string

加密口令

Status

int

状态

 

用户的所有相关信息均记录到数据库中的用户表User_Table。

3.7         用户的角色委派

角色委派是指为用户分配若干种角色。可以用二元组(User,Role)表示,含义是User用户属于角色Role。一个用户可以属于多个角色。

3.7.1          用户角色关联表

    UserRole_Table

字段

类型

描述

Role_ID

int

外键

User_ID

int

外键

Status

int

状态

 

用户与角色的所有关联信息均记录到数据库的用户角色关联表UserRole_Table。

4           系统运行模型 4.1         用户认证

   使用应用系统的用户首先要进行用户登录,登录成功后,结合UserRole_Table及RolePerssion_Table查询当前用户对所有资源的访问权限,根据返回结果在动态生成此用户对资源的所有权限表:

UserPermission_Table

字段

类型

描述

ResourceID

int64

资源

AccessMode

int

访问方式

 

其中AccessMode的值是用户所属的多个角色对某一资源的所有访问方式的组合。

4.2         安全访问控制

当用户要对一个需安全访问控制的对象操作时,首先根据应用系统自定义的资源ID编码规则及访问对象的相关信息生成ResourceID,和应用系统定义的对此对象进行操作所需的访问权限accessMode,再查找UserPermission_Table表,判别当前用户是否具有相应的操作权限。

5           结论

  本文结合.Net Framework开发平台提供的新特性,给出了一套基于RBAC通用的普通应用系统权限管理的设计方案,本设计结构简洁、实用,并有较高的灵活性,满足普通应用系统对安全访问控制的需要。

 

 参考文献:

[1] Sandhu R. ,Coyne E. J . ,Feinstein H. L. et al . Role - Based access control models[J ] . IEEE Computer ,1996 ,29 (2) :38 - 47.

[2] 汤鹏翔,一种实用的基于角色访问控制系统设计与实现。计算机应用,2002.22(12):41-43

[3] Julian Fempleman, David Vitter. Visual Studio .Net Framework Black Book[M]. 北京:水利出版社, 2003.

 

共2页: 上一页 [1] 2


具有自适应能力的值对象研究
柔性机器人水下运动的建模与仿真
工商管理 | 工科论文 | 财务管理 | 管理学 | 公共管理 | 财政税收 | 证券金融 | 会计审计 | 计算机 | 法律论文 | 医药学 | 汉语言文学
社会论文 | 工科论文 | 理科论文 | 文化论文 | 艺术论文 | 文学论文 | 哲学论文 | 政治论文 | 英语论文 | 写作指导 | 计算机应用
www.zlunwen.com 找论文网 ® 版权所有 网站地图