电力技术论文栏目提供最新电力技术论文格式、电力技术硕士论文范文。详情咨询QQ:1847080343(论文辅导)

如何解决基于B/S模式的电力技术监督管理系统权限管理的问题

日期:2018年01月15日 编辑:ad201102161621351258 作者:无忧论文网 点击次数:1526
论文价格:免费 论文编号:lw201201111520413824 论文字数:0 所属栏目:电力技术论文
论文地区:中国 论文语种:中文 论文用途:职称论文 Thesis for Title

Abstract:This paper not only introduces the design idea for the system right management, but also presents the method to realize right management using the Microsoft Inc.latest technology:ASP.NET,VB.NET as script language and Behind Code technology.Adopting this method,we solved the right management problem for supervisory management system of electrical technology.

 

Key words:B/S Mode; ASP.NET Technology; Right Management; Behind Code

 

摘 要:论述了应用系统权限管理的设计思想,并详细描述了采用微软最新推出的ASP.NET技术,以VB.NET作为电力技术论文发表脚本语言,采用后台编码(Behind Code )的方法,实现权限管理的过程。采用这种方法,很好地解决了基于B/S模式的电力技术监督管理系统权限管理的问题。

 

关键词:B/S模式; ASP.NET技术;权限管理;后台编码

 

1 前言
电力技术监督是提高发电、供电设备可靠性和保证电网安全、优质、稳定运行的重要基础工作,是电力生产建设管理工作的重要内容之一。采用B/S(Browser/Serv-er)模式的电力技术监督管理系统,解决了传统C/S(Client/Server)模式管理系统维护困难、工作量大的缺点,但数据的安全性却变得格外重要,所以必须很好地解决系统权限管理的问题。所谓权限管理,就是应用系统的不同用户,拥有与其角色相配的对特定几个应用子系统(或模块)的不同的操作权限。如对于某模块,系统超级用户拥有“插人、修改、删除、查询”等权限,而对于普通用户仅拥有“查询”权限。传统的应用系统权限管理从功能模型和信息模型的角度可分为两个层次,即功能层的访问权限管理和数据库访问层的权限管理。目前多数管理软件仅做到应用系统功能层上的权限控制,而没有做到数据库访问层的权限控制。功能层权限管理的处理方式并没有控制到后台数据库基本表,即什么角色的用户可以对哪些基本表拥有哪几种操作权限。由于仅控制到功能层,所以并没有给软件用户的系统管理员提供一个分配数据库基本的访问控制界面。而数据库访问层的权限管理,则是在后台对数据库进行权限管理,可精确到每一个表,但对系统管理员来说则比较复杂。在电力技术监督管理系统的设计中,我们采用的是B/S模式,权限管理则是在前台(即通过浏览器)由管理员进行处理。这种方法可以精确到数据库中的每一个表、每一个用户,而且操作安全简单,具有权限的管理员可随时随地对用户和用户组的权限进行增加、删除、修改,很好地解决了传统的权限管理方法不能解决的问题。
2 应用系统权限管理的设计
2•1 权限管理的粒度
(1)用户粒度。它可以细化到用户组或细化到用户,即可以由管理员对用户组或用户对数据库中的每一个表进行授权。
(2)操作对象的粒度。对数据库的操作权限有查询、增加、删除、修改等。对于一般的用户都具有查询、浏览的权限,其它几个权限则是由管理员在授权页面进行授权。具有权限为“1”,无权限则为“0”。权限设置精确到数据库中的每一个表,即用户组对表的关系为“一对多”的关系。
2•2 权限管理数据库的设计
数据库采用的是Oracle 8i,设计了表1~表3。


3  权限管理的实现
采用微软最新推出的ASP.NET(Active Server Page)技术,这种技术与ASP技术相比具有更显著的优点:①更强大的语言支持。它可采用VB.NET,C#进行开发,而不局限于VBScript或JScript语言。②更高的执行效率和开发效率。ASP.NET的脚本经过编译并被存储下来,这样下次执行是直接执行编译后的脚本。③更强大的错误处理和调试特性、更安全的管理机制、更多的组件服务。在权限管理的实现中,脚本语言采用的是VB.NET,这种语言简单易学。采用后台编码( Behind Code)的方法,实现了程序架构与代码分离,避免了程序代码与HTML混杂在一起,增强了程序的可读性。
图1为用户权限管理页面。在此页面,可以添加用户权限组,并且可以对下拉列表框中所选择的权限组进行权限修改,或者删除此权限组。下拉列表框中的权限组名,是从数据库表“AuthGroup”检索出来并绑定到下拉列表框中的。选中权限组后,点击“修改用户组权限”按钮,弹出DataGrid控件,在此控件中显示出此权限组原来的对数据库中各个表的操作权限(CheckBox框被选中,表示具有此权限)。修改权限后点击“提交修改”按钮,把修改后的权限存到数据库中(具有权限为“1”,无此权限为“0”)。


图2为创建权限组,并为所创建的权限组进行授权。这是“一对多”的关系,即一个权限组对数据库中的所有表所具有的权限,具有权限则选中CheckBox框。点击“授权”按钮后,把此权限组的权限存到数据库表Au-thGroup中。存到数据库中的数据选中为“1”,未选中为“0”。如果某用户属于此用户组,则他拥有此权限组所拥有的对各个表的操作权限。
图3为绝缘技术监督模块用户登录页面。若用户输入的用户名称和密码正确,点击“登录”后进入绝缘监督主界面,选择所要操作的表进行操作。也可以点击“修改密码”进入另一个修改密码的页面。当你点击“登录”进入主界面时,已经把用户所属的“用户组”存入本机Cookie,Cookie语句如下所示。其中第一个语句创建HttpCookie类中的对象,并为Cookie传输一个名称作为参数,其含义即“为我创建一个Cookie,称为‘group1’”;第二个语句从数据库表User1中通过OleDbDatReader对象Myreader1把用户所属的组从表AuthGroup中的字段“groupname”中读出,并赋给mycookie.Value ;第三个语句使用Response对象及其Cookies属性向HTTP响应添加新Cookie。当Web浏览器接收到HTTP响应时,它就会把Cookie信息写入硬盘中。


进入下一个页面后,通过“dim groupname1 as string =Request.Cookies(″group1″).Value”语句把用户所属的用户组从Cookies对象中取出并赋给变量“groupname1”,通过执行下面的SQL语句把用户对此表所拥有的权限从表“AuthGroup”中取出,其中“thistable”即用户所要操作的表名:sqlstr=″select * from authgroupwhere groupname=′″+groupname1+″′and tablename=′thistable′″
这样通过执行此SQL语句,就明确了用户对此表所拥有的权限。若用户拥有“添加”的权限,则用户可以添加新的数据,否则就不能添加新的数据。
4 结束语
从上面所述可以看出,此权限管理是通过浏览器由管理员在前台对用户进行授权,避免了管理员在后台即数据库侧对各个表操作的复杂性,操作比较简单易行而且可靠,并且授权可以精确到数据库中的每一个表,编程简单、代码量不大。由于采用的是微软最新技术ASP.NET,所以实现了程序架构与代码分离,增强了代码的可靠性和可读性。经过试运行,客户反映较好。

 

参考文献:
[1] Jason Bell,Mike Clark,et al.ASP.NET程序员参考手册[M]•赵彦敏•北京:清华大学出版社,2002.
[2] Chric Ullman.Beginning ASP.NET 1.0 with VB.NET[M]•北京:机械工业出版社,2002.
[3]朱建江,王宁生•一种通用的应用系统权限管理的实现方法[J].计算机应用研究,2001,18(7):62-63,92.