NET平台下角色访问动态权限管理的设计与实现

时间:2022-07-12 11:49:51

NET平台下角色访问动态权限管理的设计与实现

摘要:为了提高Web信息管理系统的灵活性和可维护性,根据RBAC的基本思想, 利用Web 控件TreeView、Menu 及 技术, 通过递归算法,动态生成用户权限树型菜单和下拉菜单的具体实现方法。用户无权限的模块对用户不可见, 提高了系统的安全性。该方法具有一定的通用性,可以很容易扩展到其他Web开发平台上。

关键词:角色;Web service;TreeView控件;Menu控件;递归算法

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)34-0095-03

1序言

在B/S信息管理系统中,实现权限动态分配的方法有多种。从操作对象上看,可以分为两种:以用户为中心的方法和以角色为中心的方法。以用户为中心的方法是对每个用户直接设置权限,而以角色为中心的方法是给每个角色授权,这是一种间接设置权限的方法。这种以角色为中心的方法,是现在使用最多的一种方法,但相对复杂一点。它的基本做法是将系统中的所有用户分成多个不同的角色,属于同一角色的用户具有相同的操作权限。这样,在实现时就可以针对角色设置权限。基于角色的动态权限分配具有很大的灵活性,主要体现在不用修改程序代码就可以实现操作权限的调整,更好地适应了由于业务的调整或变化所带来的操作权限的变化。本文采用了基于角色访问控制(RBAC,Role Based Access Control) 的基本思想, 巧妙地利用了Web控件TreeView 及Menu, 设计了在B/S 模式下,根据不同的用户,不同的角色权限,通过数据库表的设计,动态生成用户权限树型菜单和下拉菜单的具体实现方法。

2角色访问控制(RBAC)的思想

基于角色的访问控制在用户和权限操作之间引入角色(Role)的概念,其目的是为了隔离用户与用户所具有的权限。分配给每个用户一个合适的角色,每个角色都具有其对应的权限。一个角色也可以有多个用户,一个用户可以有多个角色。一个角色可以有多个权限,相同的权限也可以赋予多个角色。角色作为中间桥梁把用户和权限联系起来,一个角色与权限的关联可以看作该角色拥有的一组权限的集合。权限赋予角色,角色分配给用户。RBAC 是实施面向企业的安全策略的一种有效的访问控制方式,其具有灵活性、方便性和安全性的特点,目前在大型数据库系统的权限管理中得到普遍应用。角色访问控制(RBAC)基本模型如图1所示。

3 .NET 架构与Web Service

.NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment)、快速应用开发(Rapidapplication development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。从层次结构来看,.NET框架又包括三个主要组成部分:公共语言运行时(CLR:Common Language Runtime)、服务框架(Services Framework)和上层的两类应用模板――传统的Windows应用程序模板(Win Forms)和基于的面向Web的网络应用程序模板(Web Forms和Web Services)。

Web Service技术是一种应用程序,其作用是向用户提供某些功能,并以受控的方式提供一些服务和数据访问,其开放接口的访问方式,可以在任何支持这些标准的操作系统中使用,从而为跨平台的开发奠定了基础。同时出于安全性的考虑,无论是个人或公司站点,都不可能完全_放的进行信息共享,这个时候,Web Service的出现解决就解决了这个问题。Web Service主要由四部分组成,分别是Web服务,服务的提供方、服务的请求方和服务的注册机构。

4数据库表的设计

数据库表的设计,DBMS采用微软的SQL SERVER 2012,7张表的设计如下。

部门(bm)表的结构如表1所示。

5基于角色的权限动态分配的实现思路及模块划分。

基于角色的权限动态分配的实现思路:

1)根据用户表的编号,从用户角色表中获取用户所属角色;

2)再根据角色编号从角色功能树表和功能树表中获取可以操作的所有资源;

用Treeview控件或menu控件动态实现用户权限树型菜单或下拉菜单的基本思想是:根据角色访问控制(RBAC) 的基本原理,给用户分配不同的角色,每个角色对应一些权限,然后根据用户ID 获取用户对应的角色集合,由角色集合获取对应的权限集合, 再由权限集合利用Treeview 或menu控件动态生成一棵由该用户对应的角色能访问的页面(模块)组成的树型菜单或下拉菜单。这样,用户无权访问的页面在权限树型菜单或下拉菜单就不会出现,不同的用户进入的界面不同,实现了用户权限的统一管理。

权限管理系统分为:”部门管理”、“用户管理”和“角色管理”3个功能模块。

1) 部门管理在:主要分为添加、删除、修改和查询。添加1个部门时,同时添加部门对应的角色(可能多个)。

2) 用户管理:主要分为添加、删除、修改和查询。添加一个用户时,采用用户、部门、角色进行用户角色分配(因为一个员工属于1个部门),即添加1个用户时,同时分配该用户相对应的角色。

3) 角色管理:主要分为添加、删除、修改和查询。在添加角色时同时分配功能树。

6系统中Web Service 的设计应用

动态权限管理系统中大部分的逻辑运算和数据的访问都是在Web Service 中进行的,客户端利用Web Service 的方法对具体功能进行实现。在表8中将列出Web Service 的设计应用。

上一篇:基于IB―CDIO理念的《微机原理》实验教学探索 下一篇:论文化共生视野下的东北民族地区和谐社会构建