廖亮 劉瑛
摘要:該文利用VisualBasic.Net 2017結(jié)合后臺(tái)數(shù)據(jù)庫(kù)SQL Server2008設(shè)計(jì)了一種動(dòng)態(tài)管理用戶(hù)權(quán)限的功能模塊,能較好的應(yīng)用到各種信息管理系統(tǒng)中,解決系統(tǒng)對(duì)用戶(hù)權(quán)限動(dòng)態(tài)分配的需求。
關(guān)鍵詞:VB.Net;SQL Server;權(quán)限管理
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)36-0001-03
1 概述
隨著計(jì)算機(jī)技術(shù)的發(fā)展,各行各業(yè)都逐步開(kāi)發(fā)應(yīng)用了相關(guān)的信息管理系統(tǒng)。信息系統(tǒng)在使用過(guò)程中,管理員經(jīng)常需要根據(jù)不同的崗位,給不同員工分配不同的權(quán)限,當(dāng)員工調(diào)換或調(diào)離崗位時(shí),需要對(duì)員工權(quán)限及時(shí)進(jìn)行更改與回收。目前,很多信息系統(tǒng),設(shè)計(jì)時(shí)用戶(hù)權(quán)限跟菜單項(xiàng)都是都是固定的,系統(tǒng)成型后,用戶(hù)更改權(quán)限非常困難。針對(duì)這種情況,本文設(shè)計(jì)了一種可以根據(jù)用戶(hù)需要,隨時(shí)添加、調(diào)整崗位權(quán)限的動(dòng)態(tài)權(quán)限管理模塊,方便對(duì)員工靈活分配權(quán)限,操作簡(jiǎn)單,擴(kuò)展性強(qiáng),實(shí)現(xiàn)方法適用于各類(lèi)信息系統(tǒng)。
2 總體思路
為了達(dá)到操作簡(jiǎn)單靈活的目的,界面設(shè)計(jì)時(shí),在盡量減少界面數(shù)量的同時(shí),要將界面設(shè)計(jì)得簡(jiǎn)單明了,功能集成度高,讓用戶(hù)一看就懂,一用就會(huì)。本文共重點(diǎn)講述了兩個(gè)界面:用戶(hù)管理和權(quán)限管理。用戶(hù)管理用來(lái)實(shí)現(xiàn)對(duì)用戶(hù)的管理,包括新增、修改、停用工號(hào)及工號(hào)權(quán)限分配功能。權(quán)限管理包括崗位設(shè)置(新增、修改、停用)及崗位對(duì)應(yīng)的權(quán)限分配。而后臺(tái)數(shù)據(jù)庫(kù)的設(shè)計(jì),則需要建立:用戶(hù)表、崗位表、權(quán)限明細(xì)表三張數(shù)據(jù)表。
設(shè)計(jì)完成后,用戶(hù)登錄之時(shí),根據(jù)該用戶(hù)擁有的權(quán)限ID,系統(tǒng)只調(diào)出該權(quán)限ID擁有的菜單。各級(jí)崗位的管理維護(hù)、用戶(hù)管理和崗位權(quán)限分配,由管理員根據(jù)需求分配,達(dá)到統(tǒng)一管理動(dòng)態(tài)分配的效果。
3 實(shí)現(xiàn)過(guò)程
3.1 系統(tǒng)流程設(shè)計(jì)
系統(tǒng)登錄流程為:1)驗(yàn)證登錄;2)查詢(xún)相關(guān)權(quán)限;3)進(jìn)入系統(tǒng)并獲得相應(yīng)菜單。具體流程如圖1。
3.2 后臺(tái)數(shù)據(jù)表設(shè)計(jì)
我們?cè)赟QL Server2008數(shù)據(jù)庫(kù)中建立3張表:1用戶(hù)表:Users(ID,UserName,Password,PowerID,jlzt);2崗位權(quán)限表:Power(ID,PowerName);3權(quán)限明細(xì)表: DetailPower(PowerID,MenueName)。數(shù)據(jù)表的屬性見(jiàn)表1~3。
3.3 窗體設(shè)計(jì)
程序窗體采用的設(shè)計(jì)工具是VisualBasic.Net 2017,共設(shè)計(jì)了用戶(hù)登錄、主窗體、用戶(hù)管理、權(quán)限管理四個(gè)Windows應(yīng)用窗體。
3.3.1 定義全局變量與函數(shù)
定義了U_Id、U_Name、U_PowerID三個(gè)全局變量,用來(lái)保存登陸的用戶(hù)信息(工號(hào)、用戶(hù)名、權(quán)限編碼);定義一個(gè)grdDataSource(ByVal str As String)函數(shù),便于獲取表格控件的數(shù)據(jù)源;定義一個(gè)用來(lái)加密解密用戶(hù)密碼的csmode類(lèi)。具體代碼不在此詳述。
3.3.2 用戶(hù)登錄
用戶(hù)登錄時(shí)首先驗(yàn)證工號(hào)密碼,驗(yàn)證通過(guò)后將工號(hào)、用戶(hù)名和權(quán)限ID(PowerID)傳給全局變量,然后調(diào)用主窗體并關(guān)閉本窗體。
3.3.3 主窗體設(shè)計(jì)
主窗體的設(shè)計(jì)重點(diǎn)在加載用戶(hù)的菜單過(guò)程。本文的實(shí)現(xiàn)過(guò)程如下:
1 將所有菜單的子菜單visible屬性設(shè)為不可見(jiàn),即False。
2 根據(jù)變量U_PowerID的值,從DetailPower表中讀取其擁有的權(quán)限菜單MenuName存到數(shù)據(jù)集中,然后遍歷系統(tǒng)菜單,如果菜單名稱(chēng)在數(shù)據(jù)集中存在,則將該菜單visible屬性設(shè)為T(mén)rue。執(zhí)行結(jié)束后即完成了菜單的加載過(guò)程。
3.3.4 用戶(hù)管理
用戶(hù)管理界面如圖2,實(shí)現(xiàn)了用戶(hù)新增、修改、停/啟用等功能,當(dāng)用戶(hù)數(shù)量較多時(shí),可根據(jù)工號(hào)或用戶(hù)名進(jìn)行模糊查詢(xún)。實(shí)現(xiàn)代碼簡(jiǎn)單,在此不述。
3.3.5 權(quán)限管理
權(quán)限管理的界面設(shè)計(jì)如圖3,它將權(quán)限(崗位)設(shè)置和對(duì)崗位的權(quán)限分配兩個(gè)功能模塊集成在一起,減少了用戶(hù)操作。用戶(hù)根據(jù)需要設(shè)置相應(yīng)的權(quán)限(崗位)后,再分配相應(yīng)的權(quán)限,即該權(quán)限能看到的系統(tǒng)菜單。
運(yùn)行系統(tǒng),用管理員工號(hào)登陸后,只需在權(quán)限管理界面即可實(shí)現(xiàn)權(quán)限的動(dòng)態(tài)管理,在用戶(hù)管理界面進(jìn)行工號(hào)管理和設(shè)置工號(hào)權(quán)限,其他工號(hào)登錄時(shí)只能看到管理員分配的功能菜單。
4 結(jié)束語(yǔ)
本文實(shí)現(xiàn)了權(quán)限(崗位)和權(quán)限菜單的自由分配,操作簡(jiǎn)單直觀,實(shí)用性強(qiáng),生成組件之后可以引用到其他系統(tǒng)中。
參考文獻(xiàn):
[1] 管文.基于訪問(wèn)權(quán)限網(wǎng)站的動(dòng)態(tài)菜單的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2013(11).
[2] 葉文勝,劉學(xué)貴.高職院校頂崗實(shí)習(xí)管理信息化平臺(tái)中的動(dòng)態(tài)菜單技術(shù)[J].無(wú)線互聯(lián)科技,2012(9).