王龍軍
(成都工業學院,四川 成都 611730)
訪問控制是通過某種途徑顯示的準許或限制訪問能力及范圍,從而限制對目標資源的訪問,防止非法用戶的侵入或合法用戶的不慎操作所造成的破壞。目前流行的訪問控制模型有自主訪問控制模型 (Discretionary Access Control,DAC)、強制訪問控制模型(Mandatory Access Control,MAC)和基于角色的訪問控制模型 (Role-Based Access Control,RBAC)。
其中基于角色的訪問控制方法是目前公認的解決大型企業的統一資源訪問控制的有效方法。其顯著的兩大特征是:(1)減小授權管理的復雜性,降低管理開銷;(2)靈活地支持企業的安全策略,并對企業的變化有很大的伸縮性。
本文結合高校圖書館門戶系統的現狀,采用當前流行的基于角色的訪問管理模型,設計和實現了滿足圖書館門戶系統中管理后臺資源的權限管理系統,達到減輕系統管理員工作強度、降低授權管理的出錯幾率、提高系統安全性的目的。
系統管理員可以根據職能或機構的需求策略來創建角色、給角色分配權限,并給用戶分配角色,用戶能夠訪問的權限由該用戶擁有的角色權限集合決定,即把整個訪問控制過程分成2步:訪問權限與角色相關聯,角色再與用戶關聯,從而實現用戶與訪問權限的邏輯分離。
本系統采用B/S模型結構設計,以ASP.NET作為開發Web的語言,數據庫采用SQL Server 2000,其中數據庫為libdb,用戶數據表為users,開發平臺采用VS2005。本系統采用URL授權來授予角色對目錄的訪問權限,將同一角色所訪問資源的權限存放在同一個文件夾下,然后將文件夾的訪問權限分配給相應的角色,只有具有授權角色的用戶才能訪問該文件夾,從而防止非授權角色的用戶訪問指定的目錄。
本系統的具體實現步驟如下:
使用Roles類實現用戶角色功能時,首先需要在system.web配置節下設置允許使用用戶角色管理:
在ASP.NET權限管理模型中,默認情況下成員資格管理、角色管理與個性化用戶配置所使用的數據表都存儲在"App_Data"文件夾下名稱為aspnetdb.mdf的SQL Server 2005 Express實例文件中。如果要把aspnetdb.mdf數據庫中的成員的角色關系添加到SQL Server 2000的數據庫中,需要利用aspnet_regsql.exe工具來完成這個功能,在Visual Studio 2005命令提示下輸入aspnet_regsql,會彈出一個對話框,一直點"下一步"按鈕,直到看到有“選擇服務器和數據庫“的選項時,選擇自己的數據庫libdb。
(1)拒絕匿名用戶即游客訪問網站,如果訪問跳轉到Login.aspx登錄頁,在system.web配置以下設置:

(2)下面的配置內容表示只有在角色為manage的用戶登錄后才能訪問manage文件下的aspx頁面。


(3)下面的配置內容表示只有在角色為member的用戶登錄后才能訪問member文件下的aspx頁面。

(4)創建相關頁面和在運行時使用角色
以下代碼演示用戶是否屬于系統管理員(manage)角色為例,判定用戶的角色是否存在,如果用戶沒創建角色,則創建角色,根據用戶的角色,然后分配相應的訪問權限。


本文在分析基于角色的訪問控制模型的基本思想的基礎上,采用ASP.NET作為開發語言,設計并實現在圖書館門戶系統后臺管理中基于角色的用戶訪問控制系統,簡便有效地控制用戶對系統權限資源的訪問,該系統具有良好的擴展性、靈活性、操作簡便等特點,在實際運行過程中取得良好的運行效果。
[1]羅俊,顏一鳴.基于.NET的用戶權限管理設計與實現[J].電腦知識與技術,2009,5(29).
[2]李曉燕,管群.NET下基于角色的訪問控制的應用[J].計算機安全,2008,(01).
[3]楊劍,閃四清.ASP.NET環境下基于角色的權限控制的實現[J].計算機技術與發展,2007,17(5).