資源描述:
《角色訪問動態(tài)生成用戶權(quán)限菜單樹》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、角色訪問動態(tài)生成用戶權(quán)限菜單樹?一、引言隨著.NET和J2EE開發(fā)平臺的推出,傳統(tǒng)的軟件開發(fā)模式開始向B/S模式轉(zhuǎn)變,這種轉(zhuǎn)變給系統(tǒng)的安全性提出了更高的要求,B/S模式下,由于HTTP協(xié)議和瀏覽器的特殊性,可能會造成信息的泄漏甚至使非法用戶修改數(shù)據(jù)。而權(quán)限的設(shè)置、分配與管理是任何一個系統(tǒng)必不可少的功能。如何設(shè)計與實現(xiàn)其功能,目前有多種方案,傳統(tǒng)的訪問控制方法DAC(DiscretionaryAccessControl,自主訪問控制模型)、MAC(MandatoryAccessControl,強制訪問控制模型)難以滿足復(fù)雜的企業(yè)環(huán)境需求。本文采用了
2、現(xiàn)在流行的基于角色訪問控制(RBAC,RoleBasedAccessControl)的基本思想,巧妙地利用了Web控件TreeView及ASP.NET技術(shù),設(shè)計了在B/S模式下,根據(jù)不同的用戶,不同的角色權(quán)限,動態(tài)生成用戶菜單樹的一種具體實現(xiàn)方法。本文將先介紹RBAC的基本思想,在此基礎(chǔ)上,給出在ASP.NET中的具體實現(xiàn)方法。二、角色訪問控制(RBAC)的基本思想UsersRolesPermissions圖1 RBAC的基本思想在RBAC中,許可Permissions(特權(quán))就是允許對一個或多個客體執(zhí)行的權(quán)力,角色就是許可的集合,如圖1所示。R
3、BAC的基本思想就是把整個訪問過程分為兩步:訪問權(quán)限與角色關(guān)聯(lián),角色再與用戶關(guān)聯(lián),從而實現(xiàn)了用戶與訪問權(quán)限的邏輯分離。RBAC對訪問權(quán)限的授權(quán)由系統(tǒng)管理員統(tǒng)一管理,系統(tǒng)管理員根據(jù)單位中不同的崗位定義不同的角色,用戶根據(jù)其職能和責(zé)任被賦予相應(yīng)的角色。一旦用戶成為某角色的成員,則此用戶可以完成該角色所具有的職能。由于RBAC實現(xiàn)了用戶與訪問權(quán)限的邏輯分離,因此它極大地方便了權(quán)限管理的復(fù)雜性??筛鶕?jù)用戶的實際工作崗位將用戶與角色關(guān)聯(lián),一方面定義角色、增加刪除角色中的用戶易于操作,另一方面,可以通過更改角色的權(quán)限實現(xiàn)大批量用戶權(quán)限的更新。在實際應(yīng)用中,由
4、于角色/權(quán)限之間的變化比用戶/角色之間的變化要慢得多,當(dāng)一個用戶的職位發(fā)生了變化,只要將用戶當(dāng)前的角色去掉,加入代表新職務(wù)的角色即可。因此,RBAC的優(yōu)點是明顯的,更符合企業(yè)的應(yīng)用特征。三、用戶權(quán)限菜單樹用TreeView控件動態(tài)實現(xiàn)用戶權(quán)限菜單樹的基本思想是:根據(jù)角色訪問控制(RBAC)的基本原理,給用戶分配不同的角色,每個角色對應(yīng)一些權(quán)限,然后根據(jù)用戶ID獲取用戶對應(yīng)的角色集合,由角色集合獲取對應(yīng)的權(quán)限集合,再由權(quán)限集合利用TreeWiew控件動態(tài)生成一棵由該用戶對應(yīng)的角色能訪問的頁面(模塊)組成的權(quán)限樹。這樣,用戶無權(quán)訪問的頁面在權(quán)限菜單樹
5、就不會出現(xiàn),不同的用戶進入的界面不同,實現(xiàn)了用戶權(quán)限的統(tǒng)一管理。下面從功能模塊設(shè)計、數(shù)據(jù)庫設(shè)計、架構(gòu)設(shè)計等幾方面來闡述其實現(xiàn)過程。1.功能模塊劃分?圖2 用戶權(quán)限管理功能模塊圖用戶權(quán)限管理系統(tǒng)功能如圖2所示,其中主要模塊功能闡述如下:用戶管理模塊分為:刪除用戶、瀏覽用戶和角色分配三個子模塊,主要負責(zé)各類用戶的刪除、合法性驗證及為用戶分配角色。用戶管理模塊中并沒有增加用戶子模塊的功能,主要是由用戶注冊模塊來實現(xiàn)的。權(quán)限管理模塊分為:角色管理和訪問控制兩個子模塊。角色管理負責(zé)管理各類角色(增、刪、改),為角色授予相應(yīng)信息服務(wù)模塊的使用權(quán)限,刪除角色的
6、某個模塊的使用權(quán)限等;訪問控制是保證信息安全的關(guān)鍵,用戶登錄時經(jīng)身份驗證后,系統(tǒng)根據(jù)用戶具有角色的信息服務(wù)模塊的使用權(quán)限自動生成訪問權(quán)限集,使得用戶能夠訪問授權(quán)的信息,攔截對沒有授權(quán)信息服務(wù)的訪問。2.數(shù)據(jù)庫設(shè)計在實施RBAC生成用戶權(quán)限菜單樹時,為了提高系統(tǒng)管理及數(shù)據(jù)訪問的效率,在數(shù)據(jù)庫中設(shè)計了用戶表(表1所示)、角色表(表2所示)、用戶角色表(表3所示)、角色權(quán)限表(表4所示)及菜單樹結(jié)構(gòu)表(表5所示)共5個表。表1用戶信息表Users字段名類型字段中文名UserIDint用戶ID主鍵UserNameVarchar(50)用戶名Passwor
7、dVarchar(100)用戶密碼用MD5加密RealNameVarchar(50)用戶真實姓名EmailVarchar(100)用戶EmailStateint用戶狀態(tài),默認:0BaoliuChar(1)保留,默認:1表2角色信息表Roles字段名類型字段中文名RoleIDint角色ID主鍵RoleNameVarchar(20)角色名稱用MD5加密RoleDescVarchar(50)角色描述PerMissionVarchar(50)角色權(quán)限BaoliuChar(1)保留,默認:1表3用戶角色表UserRoles字段名類型字段中文名RoleIDi
8、nt角色IDUserIDint用戶ID表4角色權(quán)限表RolePermissions字段名類型字段中文名RoleIDint角色IDTree