基于ASP.NET母板页的高校成教管理系统权限控制设计与实现
2013-01-10张红祥
张红祥
(泰州学院 ,江苏 泰州 225300)
伴随着高校发展与终身教育理念的深入人心,普通高校的成人教育得到了快速发展,教育教学方式也发生深刻的变化,[1]这对成人教育管理提出了更高的要求.权限控制是管理信息系统的必要组成部分.如何从成人教育管理的实际出发,实现简便、高效的权限控制是当前开发成教管理系统的重点.笔者在开发泰州学院成人教务管理系统过程中,面对系统权限控制,研究并设计实现了基于ASP.NET母板页的权限控制管理.
1 成教管理系统
成人继续学历教育有四种主要形式,分别是成人高等教育(成人高考)、高等教育自学考试(自考)、网络大学(网络教育)和电大现代远程开放教育(电大).[2]部分学历教育项目有相应的信息管理系统,但系统间共性部分不能互访且存在数据不一致等问题.
1.1 成教管理系统的实现方式
采购成熟产品.目前相应教育管理系统的产品有很多,功能强大,全套系统的价格较高.但这类产品存在同质化的问题,即不能适应不同类型与层次高校的需求.往往此类产品实际部署后大多只使用了系统内的部分功能,同时对学校原有系统的数据接口不太友好.通常采购此类成熟产品的学校会为了适应系统而改变原有的一些业务流程和规范.
定制系统.此类系统通常是由专业软件公司为某一学校进行量身订做一套管理系统,系统的集成度较高,功能切合实际.但此类定制系统,如果要做到功能完善,往往价格高昂,且后期维护升级费用也将是一笔不小的开销.
自主、半自主开发.此类系统在国内较为常见,一般具有一定实力的高校通常会自主开发相应的管理信息系统,即各职能部门或者院系独立开发、或者购买软件公司成熟的框架进行开发.自主开发有着较高的系统契合度,也能较好的适应现实业务流程,同时后期的维护与功能升级也会有较高的响应.
泰州学院成教管理系统主要采用自主开发的方式,该系统将紧紧围绕学校的成教培养目标与办学实际,规范现有的管理模式,提高各项工作的效率.
1.2 系统角色与权限需求
成教管理系统一般包括系统管理员、学籍管理员、考务管理员、教务管理员、财务人员、教师、班主任、部门领导等角色.成人教育通常会借助现代远程教育技术实现跨地域的教育教学实施,因而通常会有诸如分校、教学点、联合办学点等多种形式的校外站点.系统主要角色可由图1表示.
图1 泰州学院成教管理系统角色划分
从图1可知,该系统基本为成教院与教学点的两层组织结构,后期还将扩充成三层,即加入以学生服务为中心的学生服务层.这三层主体结构是成人教管系统的角色划分依据.
1.3 角色功能划分
根据以上对成教管理系统角色划分,可以得到该系统的主要功能,如图2所示.
图2 泰州学院成教管理系统功能划分
1.4 系统开发模式
B/S模式由于其跨平台特性使得系统部署和维护变得非常方便.JavaScript的客户端技术的广泛深入应用也使得浏览器能够分担服务器的部分任务,部分页面UI呈现、客户端交互等计算交由浏览器来完成.另一方面HTML5标准得到迅速推广,各大主流浏览器支持或正在支持新的HTML5标准.Jquery、AJAX等JavaScript框架技术使得浏览器前端开发变得非常便捷与高效.所以,泰州学院成教管理系统将采用B/S模式进行开发.
2 系统权限控制
2.1 权限控制方法
WEB管理系统权限控制主要有以下三种方式.
强制访问控制(Mandatory Access Control)它是系统强制主体服从事先制定访问的控制策略.它预先定义了用户级别、信息级别并通过比较这两者的级别来进行合法性的验证.
自主访问控制(Discretionary Access Control)它是在确认主体身份及所属组的基础上,对访问者进行限定的一种控制策略.访问控制策略保存在一个矩阵中,矩阵的每个元素表示一个主体对一个客体的访问控制.[3]
基于角色的访问控制(Role-Base Access Control, RBAC).RBAC是目前应用较为普遍的一种访问控制方法.它主要由用户、角色和权限三个实体构成.角色跟用户之间、权限跟角色之间都是多对多的关系,用户跟权限之间没有直接的关系.角色根据不同的需求设定,赋予角色不同权限,用户通过关联不同的角色而拥有不同的权限.角色如果有新的功能加入,用户相应的就被赋予新的权限.[4]
由于目前基于B/S模式的管理系统规模不断扩大,同时需求定义随着时间的推移也会不断变化,因此采用基于角色的权限控制模式会有较好的适应性.泰州学院成教管理系统主要采用此种模式.
2.2 权限控制设计
在泰州学院成教管理系统的权限设计部分,主要考虑到三层主体(成教院、教学点、学生)对系统的需求,将系统功能依据各层主体进行横向划分,而对于系统中的处理对象根据需求进行纵向划分.
横向划分.整个系统的主要功能被划分成:首页、招生、缴费、学籍、教学、考务、系统以及其它共8个一级菜单.相应的每个一级菜单下是最多可存在31项的二级菜单.这样系统的主要功能将最多被横向划分成248个入口.系统的一级菜单划分如图3所示.
图3 系统一级菜单划分
考虑到便捷性,这里的菜单权限采用二进制的方式表达.每个一级菜单项所包含的二级菜单的访问权限被表示成一个32位的整形数,有效位的最高位1被用做分隔符.构成类似于10010101,11101100111……的用逗号隔开的8个整型数.
纵向划分.对于教学点、教师、学生的操作对象权限范围控制主要采用纵向划分的方法,相应对象的权限范围被表述成特定字符串,一般由对象ID列表和通配符构成.比如对于商学院这一教学学院的函授专科考务管理员角色,将被相应的教学点代码、学生类别代码、学生层次代码加以限制,使得该角色只能访问权限字符串指定的一个或多个对象.
特殊权限指定.以上两种权限划分方式的好处是有良好的适应性.但对于某些特殊的权限需求,或者后期因业务需求变化导致的某些特别权限需求,那么预先设定的划分将不能完全满足需要.比如在缴费功能中,需要临时增加最终缴费确认审核,这部分的权限控制将通过扩充自定义控件来实现.在系统中应尽力避免使用特殊权限指定,过多的权限硬编码会导致系统结构变得僵硬,难以适应新的需求.
3 基于ASP.NET母板页的系统权限控制实现
(1)母板页.母板页是微软ASP.NET2.0引入的一个特性,它使得我们能够借助母板页,让所关联的页面继承一致的外观与行为.它类似一个小型框架,包含一个或多个预留给页面的编辑区域,而所有应用该母板的页面将自动拥有母板公共部分的UI与行为.本系统中,将由母板页结合客户端脚本,负责实现统一的顶栏logo、用户信息、功能菜单、权限控制、公用服务等功能.
(2)功能菜单构造.系统的功能菜单构造主要利用Jquery框架来实现,并放置到外部Common.js文件中.在母板页中已经预先定义了两个布局DIV标签,一级菜单对应ID为“daohang”,二级菜单对应ID为“left”.这样母板每次页面加载时将由客户端脚本加载页面的菜单.主要客户端脚本如下:
$("#daohang").append("
//获取菜单权系并转换成二进制字符串
var mnqx =parseInt($("#cmenu ").attr("value").split(",")[ind]).toString(2);
$("#left").append("…二级菜单…");//插入完整的二级菜单
var ll = vleft.find("li").length;
//根据二进制权限,去掉为0的菜单项
for (var i = mnqx.length - ll; i < mnqx.length ; i++)
if (mnqx.substr(i, 1) == "0") $("#left li:eq(" + (mnqx.length - i - 1) + ")").remove();
对于页面中的导航跟踪指示,本系统主要采用页面命名规则加以解决.系统要求各页面的命名为2个一级菜单首字母构成的前缀加下划线再加页面名称.例如“学员个人缴费页面”命名为jf_xygrjf.aspx.这样系统的一级、二级菜单都能得到正确跟踪.菜单构造与跟踪效果如图4所示.
(3)服务器端权限控制.权限控制如果仅仅依靠客户端,将存在重大安全隐患,必须结合服务器端的控制才能确保不出现未授权的访问.对此,在母板页的后台代码部分加入角色权限的获取以及客户端请求的验证.这里对于母板页面权限控制与验证做简要说明,其主要实现代码如下:
图4 系统功能菜单
if (Session["userid"]!=null){
cmenu.Value =normal.getmenu(Session["userid"].ToString());//发送客户端菜单掩码
//获取服务器端菜单项,这里用全局对象进行存储已加快访问速度
menulist=Application["menu"] as Dictionary
string furl=normal.getfurl(Request.Url.ToString());//获取客户端请求url
if(!normal.menupass(furl,cmenu)){//如果是未授权请求则
Response.Clear();
Response.Write("
未授权请求!请重新登陆.
");Response.End(); }}
以上运用母板页中客户端与服务器端对权限控制进行设计及实现有着很好的适应性和效率.形式上类似于某种客户端框架,而基于ASP.NET母板页的实现方法要方便简便许多.
4 结语
笔者借助对泰州学院成教管理系统的设计与开发,探索了管理信息系统中权限控制的基本理论与实现方式.在设计系统权限控制时,结合高校成人教育实际,通过ASP.NET母板页实现了权限控制.这种权限设计与控制方法在系统开发中体现了较好的便捷与效率.
参考文献:
[1]薛志良.对我国成人教育改革问题的研究与探索[J].改革与开发,2010(12).
[2]朱长发,孙亮,樊昕培.试论普通高校成人学历教育管理中的问题与对策[J].北京化工大学学报,2012(2).
[3]孙国荣.WEB系统中权限控制与身份验证的实现方法[J].信息工程,2012(9).
[4]赵飞,李隐峰.基于RBAC的数据上报系统设计与实现[J].电子科技,2013(8).