教务管理平台-权限及公共模块设计与开发

教务管理平台-权限及公共模块设计与开发[java毕业论文下载]

教务管理平台-权限及公共模块设计与开发

    

随着教育改革的不断深化,高等院校的建设与发展对国民整体素质的提高起着越来越重要的作用,建立一套能够适应这些改变的行政管理方案也就显得尤为重要。对于教务处来说,将信息技术用于校务管理中便是迫切的要求。

教务系统中的用户数量众多,需要具有不同的权限,以实现不同的应用。本论文介绍了开发背景,开发平台,并基于需求分析实现了教务管理平台中基于角色控制的权限系统(RBAC)及公共模块的设计与开发。RBAC实现了用户与访问权限的逻辑分离,更符合教务平台的用户、数据和应用特征;在公共模块中实现了系统通用的日志管理,异常处理,常用类库方法等。通过设计和应用本系统,有效的解决了教务平台中关于用户管理与权限操作等方面的问题,为系统公共模块的实现打下坚实的基础。通过较为详尽的功能测试,表明本文的设计内容具有一定的通用性,可用于需要动态分配权限与角色的管理系统中。

关键词: 权限;公共模块;RBAC

 

Education Management Platform- 

The Design and Implementation of Authority System and Public Module

Abstract

With the continuous deepening of educational 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 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 education 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 implements 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 foundation for the implementation of the system’s 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;

 

    

论文总页数:22页

1 引言 1

1.1课题背景 1

1.2课题目的 1

1.3课题意义 1

2 系统平台与相关技术 2

2.1系统架构 2

2.2 开发平台介绍 2

2.2.1 Visual Studio 2005介绍 2

2.2.2 SQL Server 2005介绍 2

2.3 开发技术介绍 2

2.3.1 Asp.net 2

2.3.2 RBAC 3

2.3.3 Identity和IPrincipal 3

3 需求分析和数据库设计 3

3.1 应解决的问题 3

3.1.1 基于RBAC的权限系统. 3

3.1.2 平台需要的公共模块 4

3.2功能需求 4

3.2.1用户信息管理 5

3.2.2 角色信息管理 5

3.2.3 资源管理 5

3.2.4 用户角色分配 5

3.2.5 角色权限分配 5

3.2.6 权限操作 5

3.2.7 日志管理 5

3.2.8 异常处理 6

3.2.9 基础公共类库 6

3.3非功能需求 6

3.3.1包容性和可扩展性 6

3.3.2系统简洁,易使用、易维护、适用非计算机专业人员使用 6

3.3.3充分保护数据的一致性 6

3.3.4采用先进成熟的技术,建立实用可靠的系统 6

3.4 数据库设计 6

4 系统设计设计与实现 9

4.1公共模块设计 9

4.1.1数据库通用类设计 9

4.1.2系统工具通用类设计 9

4.1.3系统日志和树目录设计 10

4.1.4系统异常处理 12

4.1.5系统通用页面设计 12

4.2 权限系统模块的实现 13

4.2.1 用户信息管理和角色绑定 13

4.2.2 角色管理和权限绑定 15

4.2.3 权限管理 16

4.2.4 系统资源管理和权限绑定及菜单操作 17

4.2.4  url过滤 18

5 测试 20

结    论 20

参考文献 20

致    谢 21

声    明 22

 

 

 

 

引言

教务管理平台对安全问题有较高的要求,传统的访问控制方法DAC(Discretionary Access Control,自主访问控制模型)、MAC(Mandatory Access Control,强制访问控制模型)难以满足复杂的教务管理平台需求。NIST(National Institute of Standards and Technology,美国国家标准化和技术委员会)于90年代初提出了基于角色的访问控制方法(RBAC),实现了用户与访问权限的逻辑分离,更符合企业的用户、组织、数据和应用特征。

RBAC(角色访问控制)的基本思想即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。

由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。

1.1 课题背景

目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,因此国家教育部面向各级各类学校开展了全面学分制改革。因此,各院校迫切需要对自己的现有教务管理系统进行改进和提高,根据国内大学的现在管理模式,结合国际新的思想观念,在校园网络环境下建设先进的、与国际水平接轨的信息化管理平台。提高学校管理工作的现代化水平,使之成为学校公共信息服务体系的重要组成部分。

在这样的大环境下,我们选择了“教务管理平台”这个系统,符合实际需求。其中教务管理平台中使用人员的复杂性和众多模块的管理,需要较为复杂和安全的权限系统,另外由于团队开发和系统平台的需要,也需要一定的公共模块的支持。例如日志管理,异常处理,数据验证和过滤等。

1.2 课题目的

为教务管理平台设计一套安全,通用,可扩展的权限系统和系统公共基础模块的设计与开发,以应对系统和团队开发的需要。

1.3 课题意义

通过完成本课题系统的设计与开发,为团队开发教务管理平台打下基础,加快整个教务管理系统的开发速度,以应对实际教务管理工作自动化的需要,极大提高教务管理工作人员的效率。

系统平台与相关技术

2.1 系统架构

B/S架构的优点在于客户端和服务器通过Intranet进行数据交换,客户端基于统一的WEB浏览器,减少了投资,解决了系统维护升级的问题,另外只有极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这也就充分保护了数据的安全。根据教务平台的需求和实际使用情况,由于人员的复杂性和访问机器的分布性,适合使用B/S架构。

2.2 开发平台介绍

本毕业设计的命题是教务管理平台中权限系统和公共模块的设计和开发,根据团队要求和开发成本选择了Visual Studio 2005+SQL 2005开发环境,使用的语言为c#。

2.2.1 Visual Studio 2005介绍

Visual Studio 2005 是一系列高效的、智能的开发工具的统称,它拥有一个庞大的产品线,包括面向学生、爱好者、初学者的Express版,面向专家、Visual Basic 6的Standard版,面向顾问、企业开发人员的Professional版和面向架构师的Team System版本。在这些版本中,有些集成了开发软件常用到的东西,比如重构、单元测试、类设计器等等,以方便开发人员快速的设计各类软件。

2.2.2 SQL Server 2005介绍

SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2005 数据引擎是企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。

2.3  开发技术介绍

2.3.1 Asp.net

ASP.NET是微软流行的动态WEB编程技术活动服务器网页(ASP)的最新版本,但它远不是传统ASP简单升级。ASP.NET和ASP的最大区别在于编程思维的转换,ASP.NET是真正的面向对象(Object-oriented),而不仅仅在于功能的增强。

ASP.NET中,Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本和该页的编程逻辑。其中每一部分都存储在一个单独的文件中。可视元素在一个扩展名为 .aspx 文件中创建,而代码位于一个单独的类文件中,该文件称作代码隐藏类文件扩展名为.aspx.vb 或 .aspx.cs。这样,.aspx文件中存放所有要显示的元素,aspx.vb或.aspx.cs文件中存放逻辑。

2.3.2 RBAC

企业环境中的访问控制策略一般有三种:自主型访问控制方法、强制型访问控制方法和基于角色的访问控制方法(RBAC)。其中,自主式太弱,强制式太强,二者工作量大,不便于管理。基于角色的访问控制方法是目前公认的解决大型企业的统一资源访问控制的有效方法。其显著的两大特征是:1.减小授权管理的复杂性,降低管理开销;2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

基于角色的访问控制RBAC作为一种灵活和直观的访问控制技术在20世纪90年代迅速发展起来,RBAC通过引入角色的新概念来实施访问控制策略。不同的角色和它所应具有的权限许可互相联系,用户作为某些角色的成员,获得角色所拥有的权限。角色可以根据实际的单位或组织的不同工作职能和权限来划分,依据用户所承担的不同权利和义务来授权相应的角色,对于一个存在大量用户和权限的权限分配系统来说,从用户到角色的管理,简化了权限分配的复杂性,提高了安全管理的效率和质量。

2.3.3 Identity和IPrincipal

Principal对象是实现了IPrincipal接口的类的实例,这些对象用来表示用户,并且包括了用户的身份信息。

对于每一个线程来说都与一个principal对象相关联。这个principal对象包括了表示运行当前线程的用户的identity对象。

需求分析和数据库设计

3.1 应解决的问题

3.1.1 基于RBAC的权限系统.

1. 用户(user)和角色(role)

用户指访问系统中的资源的主体,一般为人,也可为 Agent 等智能程序。角色指应用领域内一种权力和责任的语义综合体,可以是一个抽象概念,也可以是对应于实际系统中的特定语义体,比如组织内部的职务等。针对角色属性的不同,某些模型中将角色进一步细分为普通角色和管理员角色(可理解为全局角色)。

2. 许可(Permissions)和权限(Permission)

许可描述了角色对计算机资源的访问和操作所具有的权限,其反映的是授权的结果。比如授予某个角色对计算机资源有读的权限,则代表了一个许可的存在,这个许可表示:角色获取了对计算机资源的读许可。针对操作来说,其描述的是许可和操作之间的一种关联关系,而这层关系则表示了某一角色对某一操作所具有的权限及权限状态。

3. 角色和指派(Assignment)

指派包含两个方面,用户指派和许可指派。用户指派表示的是,将用户指派给特定的角色。许可指派表示的是为角色指派计算机资源的访问和操作许可。

3.1.2 平台需要的公共模块

1.日志管理

2.异常处理

3.加密模块及字符串验证与过滤等公共模块。

3.2 功能需求

按照教务平台RBAC权限系统的需要,和相关公共基础模块的需要,有如下的功能需求。如图1所示。

图1  系统功能图

RBAC中用户,角色,权限,资源之间的关系如图2所示。

图2  RBAC关系图

3.2.1 用户信息管理

用户是权限的拥有者或主体。用户和权限实现分离,通过授权管理进行绑定。用户信息管理主要提供教务管理平台相关使用人员的信息的管理,包括添加,删除,修改等相关操作。

3.2.2 角色信息管理

角色是权利和责任的标识,角色信息管理主要提供教务管理平台相关使用人员所属角色信息的管理,包括添加,删除,修改等相关操作。角色和权限管理起来后,就拥有了一定的资源操作权力。

3.2.3 资源管理

资源管理主要提供教务管理平台中各个功能模块可访问资源的管理,包括各种资源相关权限的添加,删除,修改等相关操作。资源包括各种操作和可访问的页面等。

3.2.4 用户角色分配

实现用户和角色之间的关联关系映射。

在用户信息列表中,选择要分配角色的用户,单击列表中的用户名,进入分配角色页面所示的窗口。
  在为用户分配角色的窗口中,主要是通过职能范围来确定用户的权限。每一个用户在每一个职能范围中均有一个默认的角色,并可以浏览该职能域中密级为“公开”的数据元。
  为用户分配角色主要就是修改选定的用户在每一个职能范围中的角色,以及在每个职能范围中可以操作的数据元的密级。

3.2.5 角色权限分配

实现权限操作和角色之间的关联关系映射。角色描述用户的职能,权限是可访问资源的标识,给指定的角色分配权限,使角色具有了真正意义上的职能范围。

3.2.6 权限操作

完成资源和权限之间的绑定。可访问的资源或操作需要一个标识来标明,权限用通俗的语言来描述这种可用操作。例如用户查看某个列表,“查看”就代表了权限,而“列表“就是资源。

3.2.7 日志管理

日志是每个系统必不可少的东西,教务平台中用户的登陆信息,操作信息或异常信息都需要保存,以方便管理员的调用。日志管理主要完成对系统相关各种日志的记录和管理,将信息持久化保存。

3.2.8 异常处理

异常处理是每个系统必备的,自定义异常有助于把系统的错误信息按照自己定义的方式来处理,教务平台中把异常信息的保存进日志系统中,方便系统管理员查看,以及时修补系统存在的问题。。

3.2.9 基础公共类库

完成相关系统基本类库的设计。涉及到数据库操作,相关javascript操作,字符串过滤和编码解码,分页等。这类方法通常具有一般的通用性,以方便教务平台各模块的调用。

3.3 非功能需求

3.3.1 包容性和可扩展性

系统应具有较好的可扩展性和包容性。系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的投资。特别是在应用需求变化时(应用与系统的需求往往提不全或者经常会变化),有一个较好的应用平台,能容易地加以调整。系统易于扩充升级,既能满足当前业务的需求,又为今后的扩充留有空间。

3.3.2 系统简洁,易使用、易维护、适用非计算机专业人员使用

系统的设计需要考虑用户的计算机水平,做到简单易用,没有计算机专业背景的用户也可以轻松的使用本系统完成复杂的排课工作。

3.3.3 充分保护数据的一致性

权限系统中的用户,角色,权限,资源等多种信息。各信息存在着一定的关联关系。权限系统所使用的信息需要数据的高度一致,因此,非常有必要在设计时将数据的一致性作为一个重点来考虑。

3.3.4 采用先进成熟的技术,建立实用可靠的系统

本系统的建设目标是否能实现,系统整个投资能否发挥应有的效益,最终将取决于该系统是否可靠实用。为此,系统应采用成熟可靠的技术,应贯彻产品化的设计原则和实施方法。同时,系统的起点要高,而不是基于淘汰的技术,系统的建立应适应未来技术发展的趋势。

3.4 数据库设计

根据需求分析中的各种模块,设计了如下的数据库。

  • 用户表 Accounts_Users用来存储系统用户。表的字段说明如表1所示。

表1 Accounts_Users(用户表)

序号

列名

数据类型

长度

标识

主键

允许空

字段说明

1

UserID

int

4

 

用户ID

2

UserName

varchar

50

 

 

 

用户名

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

Style

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

Description

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

Description

varchar

255

 

 

权限说明

3

CategoryID

Int

4

 

 

权限类别

 
  • 权限类别(Accounts_PermissionsCategories)存储权限的类别,表的字段说明如表6所示。

表6 Accounts_PermissionCategories

序号

列名

数据类型

长度

标识

主键

允许空

字段说明

1

CategoryID

Int

4

 

类别ID

2

Description

Varchar

255

 

 

类别说明

 
  • 目录树(S_Tree),存放系统的目录树,可无限添加.表的字段说明如表7所示。

表7 S_Tree

序号

列名

数据类型

长度

标识

主键

允许空

字段说明

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所示。

表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

 

 

 

类别名称

 
  • 数据库关系图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

图3 数据库关系图

数据库表之间的关系如图3所示。

系统设计与实现

4.1 公共模块设计

系统公共模块包括系统数据库操作,系统通用工具类,树目录管理,系统通用页面设计。

4.1.1 数据库通用类设计

数据库通用类由类DbManagerSQL实现,它是应用程序通过ADO.NET访问数据库的基础类,也是应用程序实现上层业务逻辑的基础.该类主要封装了创建访问数据库的一些对象或方法,如数据库连接对象等.以及执行数据库操作的必需对象。该类通过构造函数读取config配置文件里的数据库连接,类方法有执行简单SQL语句,执行存储过程,事务处理,返回datareader和dataset等操作方法。

4.1.2 系统工具通用类设计

在本系统中,应用程序定义了几个工具通用类,它们在整个应用过程中被应用了很多次,因此才能把它们集中在一起作为系统工具通用类。系统工具类通用类由命名空间Njj.Common下的各种类提供。

ConfigHelper.cs提供了关于读取webconfig中字符串值的各种方法。

MessageBox.cs中封装了向浏览器写入javascript代码和弹出对话框窗口的各种操作.

PageValidate.cs中提供了各种数据验证函数和字符串过滤,html编码解码等各种操作。

Njj.PageControl里的各种类提供了一些通用的页面自定义控件的操作,分页的样式等。

4.1.3 系统日志和树目录设计

命名空间Njj.TreeAndLog下的TreeAndLogManage类封装了关于日志的相关操作和目录列表的树相关操作。

日志操作有添加,修改,删除日志类别的功能和添加,修改,删除日志的功能。

日志主要记录系统用户的各种可记录操作,以及系统异常发生时的堆栈信息,以方便管理员的管理。主要记录内容有用户,日志记录时间,日志错误信息,用户IP,日志类别等。日志错误信息包含堆栈错误或相关用户的操作记录。系统主要界面如图4,图5所示。

 

图4 日志详细信息

 

图5 日志管理

 

 

图6 树状菜单

教务管理平台-权限及公共模块设计与开发[点击下载]
  • 上一篇:
  • 下一篇:

评论