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

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

图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.

大云网官方微信售电那点事儿

责任编辑:电力交易小郭

免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
我要收藏
个赞