第20章角色管理系统(C#从入门到精通)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第20章角色管理系统角色是相关权限的命令的集合,使用角色的主要目的是简化权限管理,帮助您管理授权,允许您指定应用程序中的用户可以访问的资源。本章通过实例详细介绍了基于Web的综合档案管理系统中的角色管理模块的分析、设计和实现,并描述了开发过程中常见的问题及解决方法。第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决20.1系统分析本章介绍对网站进行权限管理的操作,通过角色和权限控制登录用户对网站信息的访问,对重要的信息进行访问限制,达到保护这些信息的目的。本系统主要完成角色划分,即是在系统中由管理员根据实际需要进行角色的添加,删除,角色权限分配等操作,使用AJAX技术提供部分刷新,提供用户的使用体验。本系统通过权限和角色进行管理的思想如下。系统权限,包括对系统中要控制的对象元素的权限控制,如系统中各种功能模块、数据、界面元素(包括菜单、按钮等各种界面上能控制的控件)等的操作权限,如系统设置权限、资产管理权限等。可以将相应的权限分配给相应的角色实现权限的控制。系统角色,系统中的角色是权限的集合主体,被授予某种角色的用户将具备一定的职权,如系统管理员角色、资产管理员角色、文档管理员角色、图书管理员角色和普通用户等,可以添加和删除角色。第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决20.2数据库分析和设计数据库设计如下,建立TUserRole表存放角色的ID,角色名称和父编码(表示角色所属的大类)等。表结构如下。列名描述数据类型(精度范围)空/非空FidIdIntNotnullFNameOidVarcahr(30)FOid父编码IntFAssetUseTimesLimit资产借用次数限额tinyintFBookBorrowTimesLimit图书借用次数限额tinyintFDocBorrowTimesLimit文档借用次数限额tinyintFAssetUseAmountLimit资产借用数量限额tinyintFBookBorrowAmountLimit图书借用数量限额tinyintFDocBorrowAmountLimit文档借用数量限额tinyint角色权限表TPurviewInfo表,存储赋予角色的权限用户角色权限表TUserUserRole,存放用户对应的权限ID。列名描述数据类型(精度范围)空/非空FIdIdIntNotnullFActionId菜单idintFRoleId角色idInt列名描述数据类型(精度范围)空/非空FIdIdIntNotnullFRoleId角色idintFOperatorID用户编号Int菜单表TActionInfo,用于以菜单方式进行角色的操作。列名描述数据类型(精度范围)空/非空FIdIdIntNotnullFOidOidIntNotnullFPID父编码IntNotnullFName菜单名称Varchar(30)FLink连接urlVarchar(300)FType类型Varchar(30)20.3系统设计系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决1.创建实体层创建类库项目Model,在Model项目中分别添加角色管理系统涉及到的数据库表对应的实体类TActionInfo、TOperator、TPurviewInfo、TUserRole和TUserUserRole。如TUserUserRole实体类代码如下(代码20-1-1.txt)。其他实体类代码见源程序,为了便于实体类的编写,可以采用CodeSmith代码生成工具来快速生成。2.数据访问层创建类库项目SqlServer,在SqlServer中添加如下类,TActionInfo、TPurviewInfo、TUserRole和TUserUserRole,实现对表的操作,添加对数据库通用类DBUtility和实体层Model的引用。TUserUserRole类的数据访问层部分代码如下(代码20-2-1.txt)。详细代码见源程序。本章可采用动软.Net代码生成器Codematic来生成以提高开发效率。3.业务逻辑层创建类库项目Business,在Business中添加如下新类,TActionInfo、TPurviewInfo、TUserRole和TUserUserRole,实现调用数据层对应的方法,以完成对角色和权限的操作。需要添加对数据访问层SqlServer和实体层Model的引用。TuserUserRole的查询角色的拥有权限代码如下。其他类和相关方法的详细代码见源程序。4.表示层新建网站项目,项目名是RoleMng。在【解决方案资源管理器】中的项目名RoleMng上单击鼠标右键,在弹出的菜单上单击【新建文件夹】,创建MasterPages文件夹用来存放系统用到的母板页,添加一个名为Resources的文件夹用来管理系统中用到的资源,在Resources中添加一个名为Theme的文件夹,在Theme中添加一个style.css用来控制母板的样式,在Resources中添加一个名为Script的文件夹用来管理AJAX操作用到的JavaScript脚步代码,添加一个Img文件夹,用来保存系统中用到的图,新建CfgWeb文件夹用来组织表示层角色管理的页面在MasterPages文件夹添加一个名为LOneROneMenuMaster.master的母版页,从工具箱中添加一个ScriptManager控件,将自动生成的ContentPlaceHolder的ID改为ContentPlaceholderMenu,用来显示权限管理的操作菜单;再添加两个ContentPlaceHolder控件到母版页中,分别命名为ContentPlaceHolderLeft和ContentPlaceHolderRight,分别用来显示角色列表和权限列表,添加Style.css文件的连接和JavaScript脚本的连接。主要代码如下(代码20-4-1.txt)。第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决20.4运行系统在VisualStudio2008中按F5键,可以运行角色管理系统,运行结果显示页面如下。通过本系统,可以新增角色、修改角色和删除角色;可以将权限授给某个角色。第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决20.5在我的Web应用中应用本系统本章开发的三层结构的角色管理系统,以树形目录结构来显示结果,通过菜单导航和采用AJAX技术进行部分刷新,较好的实现了对角色和权限的管理。可以直接用在综合资产管理系统中。第20章角色管理系统系统分析数据库分析和设计系统设计运行系统在我的Web应用中应用本系统开发过程常见问题及解决20.6开发过程常见问题及解决1.出现错误:未能加载文件或程序集“System.Web.Extensions,Version=1.0.61025.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。原因:使用的AJAX版本冲突。VisualStudio2008可以支持ASP.NETAJAX2.0,而不需要安装ASP.NETAJAX2.0。如果是VisualStudio2005开发的ASP.NETAJAX2.0系统升级到VisualStudio2008时就会出现未能加载文件或程序集“System.Web.Extensions”的错误。解决办法::办法1.修改Web.config文件,将Web.config中的所有assembly=System.Web.Extensions,Version=1.0.61025.0,改为assembly=System.Core,Version=3.5.0.0即可。办法2.安装ASP.NETAJAX2.0。办法3.将ASP.NETAJAX2.0的三个dll文件,System.Web.Extensions.Design.dll、AjaxExtensionsToolbox.dll和System.Web.Extensions.dll复制到项目的bin目录下。

1 / 23
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功