.NET环境下基于角色的权限管理方案设计

来源 :安徽理工大学学报·自然科学版 | 被引量 : 0次 | 上传用户:sosen871213
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:针对开发“煤矿安全隐患识别、预警与整改控制信息平台”的需要, 设计了一个在 .NET环境下基于角色的权限管理方案。通过分析传统权限控制设计中存在的问题和不足,结合基于角色的访问控制的原理,提出的权限控制系统利用模块编码、页面编码、功能编码和数据库的灵活设计来实现权限的控制。该方案实现了页面级别和页面内功能级别的权限控制,很好的解决了传统权限控制设计的不足,大大的提高了系统的灵活性和可扩展性,并且已经把它作为一个组件实现,可以应用于多种MIS系统的权限管理。
  关键词:权限管理;B/S;管理信息系统(MIS);访问控制
  中图分类号:TP309.2文献标识码:A文章编号:1672-1098(2009)01-0047-04
  收稿日期:2008-10-09
  作者简介:周光亮(1982-)男,山东高密人,在读硕士,研究方向:生产安全MIS系统的设计与开发。
  
  Design of Role-based Access Privilege Management
  Solution Under .NET Environment
  ZHOU Guang-liang,LIU Quan-lin,WANG Xi-liang
  (School of Computer Science And Engineering,Anhui University of Science and Technology,Huainan Anhui 232001,China)
   Abstract: In order to develop a information platform of hidden danger recognition, early warning and control measures for coal mnies, a role-based access privilege management solution under .NET environment was designed.Analyzing disadvantages of traditional access control design,according to the principle of role-based access privilege control,it is put forwad that using module code, page code,function code and skillful design of DB to implement access privilege control. By the solution access privilege control on page-level and function-level access privilege control on pages were realized, resolving disadvantages of traditional access privilege control design and improving system’s flexibility and expansibility,which was designed as a component,and can be applied in access privilege management of various MIS.
  Key words:privilege management;B/S;management information system;access control
  
  随着网络技术的发展和Internet 的普及,Web 友好的用户界面和方便的用户操作,使得越来越多的管理信息系统(MIS)构架于互联网平台上,基于B/ S 模式结构的信息系统逐渐代替了基于C/ S 模式结构的信息系统。由于B/ S 模式系统的特性,使得基于Web 的管理信息系统的安全问题越来越突出,系统权限的管理问题也越来越为人们所关注[1] 。如何建立有效的权限控制策略以阻止不合法登录及合法用户任意访问、修改其范围外的数据一直是研究的焦点。本文正是针对开发“煤矿安全隐患识别、预警与整改控制信息平台”管理信息系统(MIS)的需要,实现了一个基于角色的权限管理方案,具有实用价值。
  
  2 基于角色的权限管理方案
  
  2.1 权限管理的要求
  访问控制是针对越权使用资源的防御措施。基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么。
  对于企业环境中的访问控制,一般有三种方法:自主型访问控制[2](Discretionary Access Control, DAC)、强制型访问控制(Mandatory Access Control,MAC)和基于角色的访问控制(Role-Based Access Control,RBAC)。其中,基于角色的访问控制是目前应用普通的统一资源访问控制方法。它能减少授权管理的复杂性,降低管理开销和灵活地支持企业的安全策略,对企业的变化有很大的伸缩性。这里主要讨论基于角色的访问控制。
  2.2 基于角色控制的优势
  角色是用户和权限之间的数据中间层,一方面权限与角色关联,另一方面,用户作为相关角色的成员。通过对用户的分析发现,虽然系统中用户的数量在不断地增加,但因为系统的功能相对有限,就会产生某一类用户有着相同的权限,可以事先将这些权限打包起来作为一个集合,然后再将这个集合赋给用户。这个集合称之为“ 角色”(也称为组),以后在对用户进行权限设定的时候,不是为每个用户定义其对各个对象的操作权限,而是直接把一个它所属的角色赋予它,这样该用户就间接拥有了该角色的所有权限。并且因为角色可以同时赋给多个用户,以后要对该类用户进行权限修改时,只需更改一次角色的权限集合的内容,就可以完成修改,非常便捷。通过角色将用户和权限分开,一方面是可以防止非法用户登录系统,另一方面又可防止合法用户对系统资源的非法使用。
  2.3 权限管理系统的核心对象模型
  根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型。对象模型中包含的基本元素主要有:用户(Users)、角色(Role)、权限(Permission)、操作(Operator)。主要的关系有:分配角色权限PA(Permission Assignment)、分配用户角色UA(Users Assignment)描述如下[3]: ① 用户是权限的拥有者或主体,用户和权限实现分离,通过授权管理进行绑定;② 角色为权限分配的单位与载体;③ 权限为对某一数据对象的可操作权利,如在数据库中对数据对象的insert、delete、select、alter,存储过程的执行等,一项权限就是可以对某一特定数据对象进行某一特定操作的权利;④ 操作为完成资源的类别和访问策略之间的绑定;⑤分配角色权限PA为实现操作和角色之间的关联关系映射;⑥分配用户角色UA为实现用户和角色之间的关联关系映射。
  
  3 权限管理系统的数据库设计
  
  基于角色的权限管理系统主要研究用户、角色、权限、操作以及它们之间的关系, 相应的数据库表结构有用户信息表、角色信息表、权限信息表、角色权限对照表、树形结构节点表、角色与树形节点对照表等(列出的为主要字段)。数据库表结构及表间关系如下(见图1)。
  


  4 应用功能权限管理的实现
  
  4.1 用户授权
  即给用户分配角色,把一个或若干个角色分配给指定用户即可,用户—角色的分配包括定义角色的层次关系。在用户与角色关系中, 用户是对受控数据对象(树型节点和页面功能项) 进行操作的主体, 角色对应企业中特定的职能岗位, 拥有处理某些功能项的许可。在整个系统中不存在无职责的用户[4],每一个用户按其职能和责任被赋予一定的角色,通过角色享有操作功能项的权限。
  4.2 授权管理
  其主要工作是角色—树形节点项的分配和角色-页面内部功能项的分配。
  (1) 角色—树形节点项的分配及实现 确定登陆用户对应角色对哪些树形节点具有相应的操作权限,即在用户登陆系统之后,系统根据用户所属角色显示其相应的树形结构。在一个用户登陆时,首先用会话Session变量记录该用户的登陆帐号,即Session["userLoginCount"],因而,利用系统用户表中登陆帐号与用户角色一对一的关系,通过Basic_SystemUser表中的roleID在Basic_TreeViewRole表中查找等于roleID的所有节点的treeNodeId,然后通过在表Basic_TreeNode中查找所有相应的节点,通过以下算法显示出来,得到的树形结构与该用户角色所有权限相对应。
  sqlstring="查找出与该登陆用户相应角色的所有节点”;//(string)Session["userLoginCount"]private void bindtvParentUserGroup(TreeNode tnTwo)//在总目录下...添加 "父级树结点"
   {
  DataSet ds = XF.Common.DBOperator.DBOperator.Instance().FillDataSet(查找出与该登陆用户相应角色的所有节点的SQL语句);
  DataTable dtBF = ds.Tables[0];
  DataRow[]RowList = dtBF.Select("fatherNodeId = '0'");//根节点的父节点ID为0
  if (RowList.Length > 0)
  {
   for (int i = 0; i < RowList.Length;i++)
   {
  TreeNode tnTwoUG=new TreeNode();//定义控件中的节点
  tnTwoUG.Text = RowList[i]["nodeName"].ToString();//nodeName 为节点名称
  tnTwoUG.Value = RowList[i]["innerId"].ToString();//innerId 为节点的主键
  tnTwoUG.Expanded = true;//节点自动展开
  tnTwo.ChildNodes.Add(tnTwoUG);//总目录下添加子结点(父级树结点)
  bindtvChildUserGroup(tnTwoUG, dtBF);//在父级树结点下添加"子结点"
   }
  }
   }
  private void bindtvChildUserGroup(TreeNode tnThre, DataTable dtChild)
   {
  DataRow[]RowList = dtChild.Select("fatherNodeId = '" + tnThre.Value+"'");
  if (RowList.Length > 0)
  {
   for (int j = 0; j < RowList.Length; j++)
   {
  TreeNode tnThreUG = new TreeNode();//定义控件中的节点
  tnThreUG.Text = RowList[j]["nodeName"].ToString();//nodeName 为节点名称
  tnThreUG.Value = RowList[j]["innerId"].ToString();//innerId 为节点的主键
  tnThreUG.Expanded = true;//节点自动展开
  tnThre.ChildNodes.Add(tnThreUG);//父级树节点目录下添加子结点(子级树节点)
  bindtvChildUserGroup(tnThreUG,dtChild);//实现递归
   }
  }
   }
  }
  (2) 角色—页面内部功能项分配及实现 由于.net环境中,每一个控件都有自己唯一的控件编程名称(可以自己命名),利用这个特点,可以给每一个需要权限访问的控件采用统一的命名规则,例如:某一页面中的Button1控件命名为competency_PositionManage_Button1。然后,给每一个角色分配相应的控件访问权限或操作,并且存储在表Basic_RolePermission中。在一个用户登陆时,首先用会话Session变量记录该用户的登陆帐号,即Session["userLoginCount"],当用户点击树形结构中的叶子节点是,系统会根绝该用户的角色显示相应的具有操作权限的控件或和执行的操作。其原理是:利用系统用户表中登陆帐号与用户角色一对一的关系,通过Basic_SystemUser表中的roleID在Basic_RolePermission表中查找等于roleID的所有permissionId,通过permissionId得到permissionMark(权限标示或控件编程名称),与页面中查找所有控件,如果名称相同则有操作权限,反之,则没有相应的操作权限,将该控件的显示属性设定为false.主要程序如下:
  //权限判断函数
  public bool ValidateCompetency(string competencyMark)//传入的是单个权限的标识
  {
   ………
   if (页面中的控件标示(编程名称)不是以‘competnecy’开头) //不是为ture
  retn = true;
   else
   {
  传入的权限标示与数据库表中该角色的所有权限标示比较,如果为真,返回true;
   }
   return retn;
  }
  //页面加载时函数部分
  for (int i = 0;i < this.Page.FindControl("form1").Controls.Count;i++)//循环页面中所有控件
  {
  string competency = this.Page.FindControl("form1").Controls[i].ID;
  if (competency!=null && !ui.ValidateCompetency(competency))//传入控件id,判断是否有权限,如果控件不为空且权限验证返还false
  this.Page.FindControl("form1").Controls[i].Visible =false;//若当前用户没有此权限,隐藏此控件
  }
  
  5 总结
  
  采用该权限管理方案,把用户和功能通过角色连接起来,并且在此基础上把特定的用户和特定的页面及其页面内的功能操作范围很好地匹配起来,从而能很好的解决B/S模式下的权限管理问题,能够管理每一个页面。这种机制结构清晰,开发工作量小,管理效果比较明显。并且他已作为一个组件来实现,与MIS系统有相应的接口。本方案不仅仅适应于“煤矿安全隐患识别、预警与整改控制信息平台”系统,同样适用于B/S模式下的其他管理信息系统。
  
  参考文献:
  [1] 高正宪,李中学.Web 环境下基于角色的访问控制策略及实现[J].计算机工程,2004,30(8):133-135.
  [2] 张荣博,李胜宇,李席广,等.基于角色访问控制的研究与应用[J].沈阳航空工业学院,2007,24(1):41-43.
  [3] 裴辉东,梁云风.基于RBAC模型的权限管理系统的设计和实现[EB/OL].[2008-9-28]http:∥www.amd ong.cn/yyal/2007 03 145 asp.
  [4] 刘燕,李慧强,胡义刚.技术信息系统中基于角色的权限管理系统[J].机床与液压,2004(10):222-226.
  (责任编辑:李 丽)
其他文献
摘 要: 提出了基于自适应遗传算法的矿山装备系统优化算法模型,采用多参数级联符号编码 ,其变异率和交叉率可根据群体适应度自调整而具有更好的收敛效果和全局搜索能力。根据 矿山设备系统的实际特点,对算法模型中的交叉率和变异率等关键算子和操作步骤作了较详 细叙述。理论上分析了自适应遗传算法在解决此类问题上的可行性。矿山生产企业根据矿山 设备系统优化模型的自适应遗传运算结果,优化设备系统,可以达到提高矿山
期刊
摘 要:从理论上研究了利用晶体的非线性效应在常温下产生太赫兹辐射波。推导了相位匹配的条件,并提出了相应的实验方案。利用这种方案产生太赫兹辐射波无需苛刻的环境条件,在常温下便可以连续、长时间地工作。  关键词:太赫兹;双折射晶体;非线性差频效应;相位匹配  中图分类号:TN929.11 文献标识码:A文章编号:1672-1098(2008)01-0058-03  收稿日期:2008-01-20  基
期刊
摘 要:任务的分解是实现多主体系统的关键,运用形式化的方法对任务分解进行描述和验证是十分必要的。对于一般的任务逻辑分解表达式,利用Petri网对任务的分解进行建模,得到任务分解Petri网,进而通过剔除不合理的任务分解结构得到任务有效分解的Petri网系统。通过检查任务有效分解的Petri网的存在与否,可以判断任务的分解结构是否有效。另外,对于任意一个有限的P/T网系统,给出了判断是否存在无效任务
期刊
摘 要:探讨听神经瘤显微外科切除术的疗效及特点。回顾性分析采用显微外科治疗的听神经瘤12 例(显微外科组)临床资料,并与传统手术治疗的16 例(对照组)进行比较。显微外科组听神经瘤完全切除75%,术中面神经解剖保留83.3%,保留部分听力33.3%;对照组上述指标分别为6.2%、0%、21.4%。两组比较,差异有统计学意义(P<0.005)。显微外科手术治疗听神经瘤疗效满意。规范和提高神经瘤手术技
期刊
摘 要: 以Schiff碱杯[4]芳烃衍生物H4L为配体,合成了两个新的铜(II)和锌(II)配合物,分 别为H2LCu2SO4,H2LZn(OAC)2。用元素分析、紫外光谱、红外光谱等方法对配合 物组成和结 构进行表征,初步研究了它们的荧光性质。结果表明,与具有微弱荧光发射能力的H4L相 比 ,锌(II)配合物的荧光发射能力有了大幅度提高,铜(II)配合物的荧光发射能力有明显降低 。  关键词:
期刊
摘 要:电子商务服务平台是电子商务业务逻辑发布和运行的网络平台。如何为终端用户提供可靠7*24不间断服务,同时保证得到最快的访问响应速度,并有效利用企业电子商务服务器是电子商务服务平台设计的关键。文中基于最快响应的Web服务器选择算法(FRWS),构建了一个基于IDNS的负载平衡解决方案。该方案的仿真系统性能测试结果表明:该方案是可行且有效的,能大大提高了用户的访问效率。  关键词:负载均衡;电子
期刊
摘 要:用Hadamard卷积定义了亚纯多叶函数类∑P上的Carlson-shaffer 算子LP(a,c),并给出了它的某些具体的应用。  关键词:Hadamard卷积; Carlson-shaffer 线性算子; 亚纯多叶函数  中图分类号:O174.51文献标识码:A文章编号:1672-1098(2009)01-0063-03  收稿日期:2008-08-01  基金项目:淮海工学院引进人才
期刊
摘 要: 在对淮河(淮南段)沉积物系统采样及对其中微量元素测试的基础上,分析了潜在有 害微量元素Hg、Cr、Cu、Cd、As、Zn、Pb、Ni的含量变化及分布规律,并基于单因子指数、 综合污染指数,对其环境影响进行了评价。结果表明:淮河(淮南段)沉积物中潜在有害微 量元素污染综合指数分布有一定的规律性:污染综合指数较大(P>1)的点主要分布在凤 台淮 河大桥至淮南淮河大桥之间,并且南岸高于北岸、南
期刊
摘 要:相应于凸规划的凸集和凸函数的性质已有很多结论,并且在凸规划的研究中得到了充分应用。相应于广义凸规划—E凸规划的E凸集和E凸函数的性质目前的研究结果还不多。在凸集、凸函数的已有结论以及E凸集和E凸函数的现有研究结果的基础上,结合Rockafeller的基本思想对E凸函数的次微分进行了探讨,给出了次微分的共轭性,连续性,以及单调性等一些结论。这些结果对广义凸规划—E凸规划的研究可能会起到一定的
期刊
摘 要:针对衰落信道,提出了一种新的MC-CDMA下行链路多用户检测方案。该方案基于最小误比特率(Minimum bit error rate,MBER)准则,并利用梯度下降法实现。通过采用内核密度估计的方法来估计误码率函数,可将该方案推广到自适应的最小误比特率(Least bit error rate,LBER)多用户检测算法。仿真结果表明,与传统归一化自适应最小均方误差(Normalized
期刊