1、教务管理平台 -权限及公共模块设计与开发 摘 要 随着教育改革的不断深化, 高等院校的建设与发展对国民整体素质 的提高起着越来越重要的 作用 ,建立一套能够适应这些改变的行政管理方案也就显得尤为重要。 对于 教务处 来说 ,将 信息技术用于 校 务管理 中便是迫切的要求。 教务系统中的用户数量众多,需要具有不同的权限,以实现不同的应用。本论文 介绍了开发背景,开发平台,并基于需求分析实现了 教务管理平台中基于角色控制的权限系统 (RBAC)及公共模块的设计与开发 。 RBAC 实现了用户与访问权限的逻辑分离,更符合 教务平台的 用户 、数据和应 用特征 ;在 公共模块中实现 了 系统通用的日志
2、管理,异常处理,常用类库方法等。 通过设计和应用本系统,有效的解决了教务平台中关于用户管理与权限操作等方面的问题 , 为系统公共模块的实现 打下坚实的基础 。通过 较为详尽的 功能测试,表明 本文的设计内容 具有一定的通用性,可用于需要动态分配权限与角色的管理系统中。 关键词 : 权限; 公共模块 ; RBAC Education Management Platform- The Design and Implementation of Authority System and Public Module Abstract With the continuous deepening of ed
3、ucational reform, the construction and development of universities players an increasingly important role to raise the overall quality, establish an administration solution to adapt these changes is particularly important. For the educational administration department, information technology use in
4、the school management is an urgent requirement. The education management platform has large number of users and needs different authority in order to achieve different applications. This paper introduces the development background, the development platforms, the module design and development of educ
5、ation management platform, role based authority control system module (RBAC) and public module by requirements analysis. RBAC more separate the data and program from users, the system of education management platform for realizing the logic separation of user and access rights. The public module imp
6、lements a generic system log management, exception handling, common library methods. With the developing of the system, it supplies an effective solution to the questions of user management and authority control of the platform and the public platform module methods, which has laid a solid foundatio
7、n for the implementation of the systems public module. By the detailed functional testing, it shows the generality, so the system may be used for the management system of dynamic allocation of authority and role. Key words: authority; public module; RBAC;第 1 页 1 引言 教务 管理 平台 对安全问题有较高的要求,传统的访问控制方法 DAC
8、( Discretionary Access Control,自主访问控制模型)、 MAC( Mandatory Access Control,强制访问控制模型)难以满足复杂的 教务管理平台 需求。 NIST( National Institute of Standards and Technology,美国国家标准化和技术委员会)于 90 年代初提出了基于角色的访问控制方法 ( RBAC) ,实现了用户与访问权限的逻辑分离 ,更符合企业的用户、组织、数据和应用特征。 RBAC(角色访问控制)的基本思想即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权
9、限的逻辑分离。 由于 RBAC 实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色 /权限之间的变化比角色 /用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定 的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。 1.1 课题 背景 目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教
10、学形式,因此国家教育部面向各级各类学校开展了全面学分制改革。因此,各院校迫切需要对自己的现有教务管理系统进行改进和提高,根据国内大学的现在管理模式,结合国际新的思想观念,在校园网络环境下建设先进的、与国际水平接轨的信息化管理平台。提高学校管理工作的现代化水平,使之成为学校公 共信息服务体系的重要组成部分。 在这样的大环境下,我们选择了 “ 教务管理平台 ” 这个系统,符合实际需求。其中教务管理平台中使用人员的复杂性和众多模块的管理,需要较为复杂和安全的权限系统,另外由于团队开发和系统平台的需要,也需要一定的公共模块的支持。例如日志管理,异常 处理,数据验证和过滤等。 1.2 课题目的 为教务
11、管理 平台设计一套安全,通用,可扩展的权限系统和系统公共基础模块的设计与开发,以应对系统和团队开发的需要。 1.3 课题意义 通过完成本课题系统的设计与开发,为团队开发教务管理平台打下基础,第 2 页 加快整个教务管理系统的开发速 度,以应对实际教务管理工作自动化的需要,极大提高教务管理工作人员的效率。 2 系统平台与相关技术 2.1 系统架构 B/S 架构的优点在于客户端和服务器通过 Intranet 进行数据交换,客户端基于统一的 WEB 浏览器,减少了投资,解决了系统维护升级的问题,另外只有极少部分事务逻辑在前端( Browser)实现,但是主要事务逻辑在服务器端( Server)实现
12、,这也就充分保护了数据的安全。根据教务平台的需求和实际使用情况,由于人员的复杂性和访问机器的分布性,适合使用 B/S 架构。 2.2 开发平台介绍 本毕业设计的命题是教务管理平台中权限 系统和公共模块的设计和开发,根据团队要求和开发成本选择了 Visual Studio 2005+SQL 2005 开发环境,使用的语言为 c#。 2.2.1 Visual Studio 2005 介绍 Visual Studio 2005 是 一系列高效的、智能的开发工具 的统称 , 它拥有一个庞大的产品线,包括面向学生、爱好者、初学者的 Express 版,面向专家、 Visual Basic 6 的 Sta
13、ndard 版,面向顾问、企业开发人员的 Professional 版和面向架构师的 Team System版本。在这些版本中,有些集成了开发软 件常用到的东西,比如重构、单元测试、类设计器等等,以方便开发人员快速的设计各类软件。 2.2.2 SQL Server 2005 介绍 SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能工具提供了企业级的数据管理。 SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 SQL Server 2005 数据引擎是企业数据管理解决方
14、案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知 功能。 2.3 开发技术介绍 2.3.1 A ASP.NET 是微软流行的动态 WEB 编程技术活动服务器网页( ASP)的最新版本,但它远不是传统 ASP 简单升级。 ASP.NET 和 ASP 的最大区别在于编程思维的转换, ASP.NET 是真正的面向对象( Object-oriented),而不仅仅在于功能的增强。 在 ASP.NET 中, Web 窗体页由两部分组成:视觉元素( HTML、服务器控件和静态文本和该页的编程逻辑。其中每一部分都存储在一个单独的文件中。可视元素在一个扩展名为 .aspx 文件中创
15、建,而代码位于一个单独的类文件 中,第 3 页 该文件称作代码隐藏类文件扩展名为 .aspx.vb 或 .aspx.cs。这样, .aspx 文件中存放所有要显示的元素, aspx.vb 或 .aspx.cs 文件中存放逻辑。 2.3.2 RBAC 企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法( RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是: 1.减小授权管理的复杂性,降低管理开销; 2.灵活地支持企业的安全策略 ,并对企业
16、的变化有很大的伸缩性。 基于角色的访问控制 RBAC 作为一种灵活和直观的访问控制技术在 20 世纪90年代迅速发展起来, RBAC 通过引入角色的新概念来实施访问控制策略。不同的角色和它所应具有的权限许可互相联系,用户作为某些角色的成员,获得角色所拥有的权限。角色可以根据实际的单位或组织的不同工作职能和权限来划分,依据用户所承担的不同权利和义务来授权相应的角色,对于一个存在大量用户和权限的权限分配系统来说,从用户到角色的管理,简化了权限分配的复杂性,提高了安全管理的效率和质量。 2.3.3 Identity 和 IPrincipal Principal对象是实现了 IPrincipal接口的
17、类的实例,这些对象用来表示用户,并且包括了用户的身份信息。 对于每一个线程来说都与一个 principal对象相关联。这个 principal对象包括了表示运行当前线程的用户的 identity 对象。 3 需求分析 和数据库设计 3.1 应解决的问题 3.1.1 基于 RBAC 的权限系统 . 1 用户 (user)和角色 (role) 用户指访问系统中的资源的主体,一般为人,也可为 Agent 等智能程序。角色指应用领域内一种权力和责任的语义综合体,可以是一个抽象概念,也可以是对应 于实际系统中的特定语义体,比如组织内部的职务等。针对角色属性的不同,某些模型中将角色进一步细分为普通角色和管
18、理员角色(可理解为全局角色)。 2 许可( Permissions)和权限( Permission) 许可描述了角色对计算机资源的访问和操作所具有的权限,其反映的是授权的结果。比如授予某个角色对计算机资源有读的权限,则代表了一个许可的存在,这个许可表示:角色获取了对计算机资源的读许可。针对操作来说,其第 4 页 描述的是许可和操作之间的一种关联关系,而这层关系则表示了某一角色对某一操作所具有的权限及权限状态。 3 角色和指派 ( Assignment) 指派包含两个方面,用户指派和许可指派。用户指派表示的是,将用户指派给特定的角色。许可指派表示的是为角色指派计算机资源的访问和操作许可。 3.1
19、.2 平台需要的公共模块 1 日志管理 2 异常处理 3 加密模块及字符串验证与过滤等公共模块。 3.2 功能需求 按照教务平台 RBAC 权限系统的需要,和相关公共基础模块的需要,有如下的功能需求。 如图 1 所示。 图 1 系统功能图 RBAC 中用户,角色,权限,资源之间的关系如图 2 所示。 图 2 RBAC 关系图 用 户 管 理 角 色 管 理 权 限 管 理 资 源 管 理 权限系统及公共模块 用 户 管 理 角 色 管 理 权 限 管 理 资 源 管 理 日 志 管 理 异 常 处 理 公 共 类 库 第 5 页 3.2.1 用户信息管理 用户是 权限的拥有者或主体。用户和权限
20、实现分离,通过授权管理进行绑定。用户 信息管理 主要提供教务管理平台相关使用人员的信息的管理,包括添加,删除,修改等相关操作 。 3.2.2 角色信息管理 角色 是 权利和责任 的标识 , 角色信息管理主要提供教务管理平台相关使用人员所属角色信息的管理,包括添加,删除,修改等相关操作。 角色和权限管理起来后,就拥有了一定的资源操作权力。 3.2.3 资源 管理 资源 管理主要提供教务管理平台中各个功能模块可访问资源的管理,包括各种资源相关权限 的添加,删除,修改等相关操作。 资源包括各种操作和可访问的页面等。 3.2.4 用户角色分配 实现用户和角色之间的关联关系映射。 在用户信息列表中,选择
21、要分配角色的用户,单击列表中的用户名,进入分配角色页面所示的窗口。 在为用户分配角色的窗口中 ,主要是通过职能范围来确定用户的权限。每一个用户在每一个职能范围中均有一个默认的角色,并可以浏览该职能域中密级为 “ 公开 ” 的数据元。 为用户分配角色主要就是修改选定的用户在每一个职能范围中的角色,以及在每个职能范围中可以操作的数据元的密级。 3.2.5 角色权限分配 实现权限操作和角色之 间的关联关系映射。 角色描述用户的职能,权限是可访问资源的标识,给指定的角色分配权限,使角色具有了真正意义上的职能范围。 3.2.6 权限操作 完成资源和权限之间的绑定。 可访问的资源或操作需要一个标识来标明,
22、权限用通俗的语言来描述这种可用操作。 例如用户查看某个列表,“查看”就代表了权限,而“列表“就是资源。 3.2.7 日志管理 日志是每个系统必不可少的东西,教务平台中用户的登陆信息,操作信息或异常信息都需要保存,以方便管理员的调用。日志管理主要完成对系统相关各种日志的记录和管理,将信息持久化保存 。 第 6 页 3.2.8 异常处理 异常处理是每个系统必备 的,自定义异常有助于把系统的错误信息按照自己定义的方式来处理,教务平台中把异常信息的保存进日志系统中 ,方便系统管理员查看 ,以及时修补系统存在的问题。 。 3.2.9 基础公共类库 完成相关 系统基本类库的设计。 涉及到数据库操作,相关
23、javascript 操作,字符串过滤和编码解码,分页等。 这类方法通常具有一般的通用性,以方便教务平台各模块的调用。 3.3 非功能需求 3.3.1 包容性和可扩展性 系统应具有较好的可扩展性和包容性。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资。特别是在应用需求变化时 (应用与 系统的需求往往提不全或者经常会变化 ),有一个较好的应用平台,能容易地加以调整。系统易于扩充升级,既能满足当前业务的需求,又为今后的扩充留有空间。 3.3.2 系统简洁 ,易使用、易维护、适用非计算机专业人员使用 系统的设计需要考虑用户的计算机水平,做到简单易用,没有计算机专
24、业背景的用户也可以轻松的使用本系统完成复杂的排课工作。 3.3.3 充分保护数据的一致性 权限系统中的用户,角色,权限,资源等多种信息。各信息存在着一定的关联关系。权限 系统所使用的信息需要数据的高度一致,因此,非常有必要在设计时将数据的一致性作为一个重点来考虑。 3.3.4 采用先进成熟的技术,建立实用可靠的系统 本系统的建设目标是否能实现,系统整个投资能否发挥应有的效益,最终将取决于该系统是否可靠实用。为此,系统应采用成熟可靠的技术,应贯彻产品化的设计原则和实施方法。同时,系统的起点要高,而不是基于淘汰的技术,系统的建立应适应未来技术发展的趋势。 3.4 数据库设计 根据需求分析中的各种模
25、块,设计了如下的数据库。 用户表 Accounts_Users 用来存储系统用户。表的字段说明如表 1 所示。 表 1 Accounts_Users(用户表 ) 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 UserID int 4 用户 ID 2 UserName varchar 50 用户名 第 7 页 3 Password binary 20 密码 4 TrueName varchar 50 真实姓名 5 Sex char 2 性别 6 Phone varchar 20 电话 7 Email varchar 100 邮箱 8 Activity bit 1 是否激活 9 S
26、tyle int 4 页面风格 用户角色表 (Account_UserRoles) ,主要用于对应某用户和所属角色的对应关系 ,字段说明如 表 2 所示 。 表 2 Accounts_UserRoles 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 UserID Int 4 用户 ID 2 RoleID Int 4 角色 ID 角色表 (Accounts_Roles),用来存储各种角色信息,字段说明如 表 3 所示 。 表 3 Accounts_Roles 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 RoleID Int 4 角色 ID 2 Descripti
27、on Varchar 255 角色说明 角色权限表用来存储角色所拥有的权限 . 表的字段说明如 表 4 所示 。 表 4 Accounts_RolePermissions 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 RoleID Int 4 角色 ID 2 PermissionID Int 4 权限 ID 权限表 (Account_Permissions)用来存储各种可用权限。表的字段说明如表 5 所示 。 表 5 Accounts_Permissions 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 PermissionID Int 4 权限 ID 2 De
28、scription varchar 255 权限说明 3 CategoryID Int 4 权限类别 权限类别 (Accounts_PermissionsCategories)存储权限的类 别,表的字段说明如 表 6 所示 。 表 6 Accounts_PermissionCategories 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 Category Int 4 类别 ID 第 8 页 ID 2 Description Varchar 255 类别说明 目录树 (S_Tree),存放系统的目录树,可无限添加 .表的字段说明如 表7 所示 。 表 7 S_Tree 序号 列
29、名 数据类型 长度 标识 主键 允许空 字段说明 1 NodeID Int 4 结点 ID 2 Text varchar 100 文本 3 ParentID int 4 母结点 ID 4 ParentPath varchar 50 母结点 ID 5 Location varchar 50 目录所在位置 6 OrderID int 4 顺序号 7 comment varchar 50 说明 8 Url varchar 100 URL 9 PermissionID int 4 权限 ID 10 ImageUrl varchar 100 图片 URL 日志 (S_Log),存放系统日志 . 如表 8
30、所示。 表 8 S_Log 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 ID bigint 8 2 CategoryID int 4 类别 ID 3 UserID varchar 50 用户 ID 4 datetime datetime 8 时间 loginfo varchar 500 信息 5 IpAddress varchar 500 用户 IP 日志类别 (Log_Category),日志类别 ,如表 9所示 。 表 9 Log_Category 序号 列名 数据类型 长度 标识 主键 允许空 字段说明 1 CategoryID int 4 类别 ID 2 CategoryName varchar 50 类别名称 数据库 关系图