基于.net的应用中实现rbac访问权限控制方法

文档序号:7758675阅读:238来源:国知局

专利名称::基于.net的应用中实现rbac访问权限控制方法
技术领域
:本发明涉及软件开发领域,更具体地说,涉及一种基于.NET的应用中实现RBAC访问权限控制方法。
背景技术
:随着信息化的不断发展,基于.NET的应用的开发和使用已经变得越来越普遍。目前,基于.NET的应用开发中,其所采用的访问控制策略一般包括有自主型访问控制方法、强制型访问控制方法和角色访问控制(RBAC,R0le-basedACCesS)方式。其中,自主型访问控制方法太弱,强制型访问控制方法太强,而且,这两种访问控制方式工作量大,不便于管理。RBAC方式的基本思想是将访问许可权分配给一定的角色,用户通过赋予不同的角色获得角色所拥有的访问许可权。这是因为在很多实际应用中,用户并不是被访问信息资源的所有者(这些信息属于企业或公司),这样的话,访问控制应该基于员工的职务,而不是基于员工在哪个组或基于被访问信息资源的所有者,即访问控制是由各个用户在部门中所担任的角色来确定的,例如,一个学校可以有教工、老师、学生和其他管理人员等角色。RBAC从控制主体的角度出发,根据管理中相对稳定的职权和责任来划分角色,将访问权限与角色相联系,这点与传统的MAC和DAC将权限直接授予用户的方式不同;通过给用户分配合适的角色,让用户与访问权限相联系。角色成为访问控制中访问主体和受控对象之间的一座桥梁。角色访问控制方式不但可以减小授权管理的复杂性,降低管理开销;而且可以灵活地支持企业的安全策略,并可以针对企业的变化具有很大的伸缩性,是目前解决大型企业的统一资源访问控制的有效方法。由于用户和企业对安全性的重视程度越来越高,如何对部署在网络上的基于.NET的应用实现RBAC访问权限控制,逐渐成为开发者关心的问题。
发明内容有鉴于此,本发明实施例提供了一种基于.NET的应用中实现RBAC访问权限控制的方法,从而实现访问权限的控制。为了实现上述目的,本发明实施例提供了如下技术方案一种基于.NET的应用中实现RBAC访问权限控制方法,包括步骤接收登录用户的包括用户名及登录密码的用户登录信息;调用权限管理系统中的用户鉴别服务,验证登录用户;为验证通过的登录用户调用权限计算服务,根据登录用户的登录信息得出该登录用户的权限关系表;将用户登录信息存储至该登录用户的全局Session中;将权限关系表存储至缓存中;使用菜单标签显示所述权限关系表所允许的功能菜单。优选的,在本发明实施例中,所述权限关系表的得出具体为根据用户、用户组、角色、操作、访问方式和资源对象之间的关联关系,以及权限的正负向授予计算出的用户的最小权限。优选的,在本发明实施例中,使用SecuirtyManager.GetPowerO模块得出所述权限关系表。优选的,在本发明实施例中,所述权限关系表为二元组。优选的,在本发明实施例中,所述权限关系表存储为以Hash-table的方式在本发明实施例中,为通过用户验证的登录用户调用权限计算服务,并根据登录用户的登录信息得出该登录用户的权限关系表。将用户登录信息存储至该登录用户的全局Session中;将权限关系表存储至缓存中;使用菜单标签显示所述权限关系表所允许的功能菜单,从而实现了访问权限控制。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例中所述方法的步骤流程图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了能够更好的理解本发明实施例,下面先将角色访问控制方式的基本概念做一下介绍。在角色访问控制方式中,角色可以看作是一组操作的集合,不同的角色具有不同的操作集,这些操作集由系统管理员分配给角色。在下面的实例中,我们假设Tchl,Tch2,Tch3......Tchi是对应的教师,Studl,Stud2,Stud3…Studj是相应的学生,Mngl,Mng2,Mng3…Mngk是教务处管理人员,那么老师的权限为TchMN={查询成绩、上传所教课程的成绩};学生的权限为StudMN={查询成绩、反映意见};教务管理人员的权限为MngMN={查询、修改成绩、打印成绩清单}。那么,依据角色的不同,每个主体只能执行自己所制定的访问功能。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制(RBAC)的根本特征,即依据RBAC策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能和责任被赋予相应的角色,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。本发明公开了一种基于.NET的应用中实现RBAC访问权限控制的方法,从而高效的实现访问权限控制。具体包括以下步骤S11、接收登录用户的包括用户名及登录密码的用户登录信息;在用户登录时,首先要接收登录用户的登录信息,具体的可以是,接收用户在登录界面输入的用户名和密码。S12、调用权限管理系统中的用户鉴别服务验证登录用户;为了保证登录用户的合法性,避免非法用户的入侵。接收到来自登录用户的用户名和密码后,通过调用权限管理系统中的用户鉴别服务,验证该登录用户的合法性。S13、为验证通过的登录用户调用权限计算服务,根据登录用户的登录信息得出该登录用户的权限关系表;当验证登录用户为合法用户后,调用权限计算服务,根据登录用户的登录信息得出该登录用户的权限关系表,从而得到登录用户在应用中具体的权限范畴。在本发明实施例中,所述根据登录用户的登录信息得出该登录用户的权限关系表,具体的方式还可以是根据登录用户的用户名、用户组、角色、操作、访问方式和资源对象之间的关联关系,以及权限的正负向授予计算出的登录用户的最小权限。在本发明实施例中,可以是在业务逻辑层使用SecuirtyManager.GetPowerO方法实现此服务。在本发明实施例中,所述权限关系表可以为二元组。具体可以为{Resouceld,operationld}。S14、将用户登录信息存储至该登录用户的全局Session中;Session可以通过将用户登录信息存储在运行基于.NET的应用的服务器的内存中,从而在整个用户会话过程中保持该用户的状态。S15、当将权限关系表存储至缓存中;在本发明实施例中,将权限关系表存储至缓存中。具体的,在本发明实施例中,所述权限关系表可以存储为以Hash-table的方式。S16、使用菜单标签显示所述权限关系表所允许的功能菜单。由于权限关系表已经存储至缓存中;从而可以在登录用户访问基于.NET的应用的资源时,根据所述权限关系表,使用页面权限控制标签控制页面的显示,根据登录用户的不同权限,页面显示内容也不同,例如,普通用户访问某个页面时,如果该登录用户对于特定的资源只有查看的权限,则在该登录用户访问所述页面时,将不会出现删除、修改或增加等操作选项。而当登录用户为具有上述操作权限的管理员时,上述操作选项将会在页面显7J\ο此外,本发明实施例还可以利用权限控制组件在业务逻辑中进行相应的权限控制,其中包括业务逻辑紧密联系的控制对象实例的权限控制。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。权利要求一种基于.NET的应用中实现RBAC访问权限控制方法,其特征在于,包括步骤接收登录用户的包括用户名及登录密码的用户登录信息;调用权限管理系统中的用户鉴别服务,验证登录用户;为验证通过的登录用户调用权限计算服务,根据登录用户的登录信息得出该登录用户的权限关系表;将用户登录信息存储至该登录用户的全局Session中;将权限关系表存储至缓存中;使用菜单标签显示所述权限关系表所允许的功能菜单。2.根据权利要求1所述方法,其特征在于,所述权限关系表的得出具体为根据用户、用户组、角色、操作、访问方式和资源对象之间的关联关系,以及权限的正负向授予计算出的用户的最小权限。3.根据权利要求2所述方法,其特征在于,使用SecuirtyManager.GetPowerO模块得出所述权限关系表。4.根据权利要求3所述方法,其特征在于,所述权限关系表为二元组。5.根据权利要求4所述方法,其特征在于,所述权限关系表存储为以Hash-table的方全文摘要本发明公开了一种基于.NET的应用中实现RBAC访问权限控制方法,包括步骤接收登录用户的包括用户名及登录密码的用户登录信息;调用权限管理系统中的用户鉴别服务,验证登录用户;为验证通过的登录用户调用权限计算服务,根据登录用户的登录信息得出登录用户的权限关系表;将用户登录信息存储至该登录用户的全局Session中;将权限关系表存储至缓存中;使用菜单标签显示所述权限关系表所允许的功能菜单。本发明通过调用权限计算服务,根据登录用户的登录信息得出权限关系表,从而可以控制页面的显示。文档编号H04L29/06GK101917448SQ201010268838公开日2010年12月15日申请日期2010年8月27日优先权日2010年8月27日发明者孙呈梅,李平,李艳贞申请人:山东中创软件工程股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1