首页 > 范文大全 > 正文

基于ASP.NET权限动态分配的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ASP.NET权限动态分配的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:为了提高Web信息管理系统的灵活性和可维护性,根据该类系统的特点,采用基于数据库技术的权限动态分配方法,以为开发工具,对该方法进行了设计实现。通过在Web信息管理系统开发过程中的应用,该方法可以更好地适应由于用户业务权限的改变所引起操作权限的变化,实现对用户操作权限的动态设置,获得了广大用户的认同,具有很高的应用价值。该方法具有一定的通用性,可以很容易扩展到其他Web开发平台上。

关键词:;Web信息管理系统;用户操作权限;权限动态分配

中图分类号:TN91934文献标识码:A文章编号:1004373X(2012)18003602

随着信息化进程的不断深入,人们借助计算机实现日常的管理工作已经非常普遍,这也大大促进了计算机应用系统的蓬勃发展,尤其是Web应用程序凭借其方便维护等特点得到了迅速发展。其中信息管理系统因其尽可能地延续人工管理的管理机制,更方便了用户的操作和管理而得到大家的一致认可。在信息管理系统中,不同类型的用户对系统所能进行的操作是不同的,所以对用户的权限管理必须做到动态分配或调整,以可视化的界面提供给系统管理者或者用户。如何针对不同的功能模块和不同的部门及其不同的用户动态的分配权限,是管理者最为关心的,也在很大程度上影响到一个系统的成败。在此结合实际的软件开发与设计,对动态分配权限问题进行了一定的探索研究与实践,提出了以下基于角色的权限动态分配方法。

1基于角色的动态权限分配的设计

在信息管理系统中,实现权限动态分配的方法有多种。从操作对象上看,可以分为两种:以用户为中心的方法和以角色为中心的方法。以用户为中心的方法是对每个用户直接设置权限,而以角色为中心的方法是给每个角色授权,这是一种间接设置权限的方法。这种以角色为中心的方法,是现在使用最多的一种方法,它的基本做法是将系统中的所有用户分成多个不同的类,属于同一类的用户具有相同的操作权限。这样,在实现时就可以针对类型设置权限,这也就是通常所说的基于角色的权限管理。基于角色的动态权限分配具有很大的灵活性,主要体现在不用修改应用程序就可以实现操作权限的调整,更好的适应了由于业务的调整或变化所带来的操作权限的变化。在实际应用中,对信息系统权限的动态设置进行了有益的探索,在该基础上用作为工具,以数据库为基础,实现了基于角色的权限动态分配功能。由于数据库是实现的基础,所以这里将重点对数据库进行设计。在基于角色的权限管理中,至少需要创建4张表:用户表(User)、角色表(Role)、系统资源表(Resource)、权限表(Right)。其中,用户表用来保存用户的基本信息,主要包括用户编号(Id)、用户姓名(Name)、登录密码(Password)和所属角色编号(Roleid)等;角色表用来保存系统中的所用角色,主要包括角色编号(Roleid)和角色名称(Rolename);系统资源表用来保存系统中所有的操作项以及相互之间的层次关系,主要包括资源编号(Resourceid)、资源名称(Name)、资源的URL(Url)和资源所属上级资源的编号(pid);权限表用来保存每种角色和系统资源之间的对应关系。这4张表之间的关系如图1所示。

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

(2)再根据角色编号从权限表中获取可以操作的所有资源;

(3)对上一步中的每个资源,根据其编号从资源表中获取资源的详细信息,并根据资源之间的关系动态生成操作菜单。

2基于角色的动态权限分配的实现

为了提高代码的可维护性,对其实现使用经典的3层结构,即表示层、业务逻辑层、数据访问。表示层主要完成用户与系统的交互,如用户信息维护页面、角色信息维护页面等。业务逻辑层主要完成处理业务逻辑,如动态导航条的生成等。数据访问层主要实现与数据库建立连接及对数据库的各种操作(即增加、删除、修改和查询)。在中,表示层主要通过WebForm实现;数据访问层和业务逻辑层主要通过类实现。下面重点对数据访问层进行实现。数据访问层主要为业务逻辑层提供数据服务,所以数据访问类至少应该具有打开/关闭数据库连接、执行查询和修改数据的方法。其部分实现代码如下: