2023年11月29日 星期四 下午 02:23
前些時間做了個eas的專案,裡面用到了很多高深的東西,如:面象服務的開發,框架等,最近看了下其中的許可權,發現這種許可權其實我也用過的,不過eas裡面用得更好,體現得更加的完美,以下對這一塊作出分析.
在專案中,訪問某乙個頁面的時候是有許可權驗證的,當然許可權肯定是開發完成後固定的,不然的話肯定是無法控制的,而角色是可變的,在專案中通過角色對應不同的許可權,而使用者屬於某乙個角色,這樣來控制登入系統的每乙個使用者的訪問許可權,並且,當須要特定的許可權集合時,可以增加乙個角色,把相應的使用者歸屬到這個角色就完成了,原理就是這樣.
其中有幾個物件要注意一下:使用者,角色,許可權;使用者和角色關係,角色和許可權關係;以下分別說明:
使用者屬性:
oid 主鍵
username 使用者名稱
displayname 顯示名
password 密碼
isvalid 是否有效
其它不相關屬性就不列舉了,
角色屬性;
oid 主鍵.
rolename 角色名稱
許可權屬性:
oid 主鍵
code 許可權**
permissionname 許可權名稱
description 描述
使用者和角色關係:
oid 主鍵
roleoid 角色id
useroid 使用者id
角色和許可權關係:
oid 主鍵
roleoid 角色id
permissionoid 許可權id
幾者之間的關係就是這樣,最先完善的是許可權表,把專案各個模組要用到的許可權寫成類,每乙個許可權可寫成常量,這樣方便使用,如:
public class hrmpermissions
else
user.identity.isauthenticated,表示使用者的登入狀態,bool型
到這裡,頁面上可以取到登入的使用者了,也可以通過許可權集合類的常量取到許可權**了,接下來就是怎麼進行驗證,這裡eas的架構師寫了乙個類(為了方便,只寫介面):
bool haspermission(iprincipal user, string permissioncode)//傳入this.user,許可權**
myuser currentuser(iprincipal user) //獲取當前自定義使用者
這樣就可以通過haspermission方法處理一堆的邏輯(略),來判斷使用者是否擁有這個許可權了,
注意:這裡的許可權驗證類最好是用單列模式,保證其全域性性,
private readonly static security instance = new security();
public static security instance
}以上是我個人心得和體會,關於其中知識點的不足之處請指點,
SQL角色與許可權
伺服器級,使用使用者的loginid來識別使用者,可以是sql server登陸,也可是windows域和使用者名稱。資料庫級,通過將使用者加入固定的資料庫角色來為其授予特定的管理許可權。物件級,每個物件所有者自動獲得其所擁有的物件的許可權,使用dcl命令和系統儲存過程來管理。伺服器角色 sysad...
使用者 角色與許可權
經常整理 反思,才能進步。一位偉大的哲學家 還原真相 事情是這樣的,我在實習的時候,我的實習導師安排我做系統後台管理中的 使用者資訊管理 角色管理 許可權管理 三個進行分析,並讓我說了說我的想法。初生牛犢不怕虎,稍微思索了下,就開始講。在講到角色管理和許可權管理的時候,我就說可以將角色管理和許可權管...
SAP 許可權與角色設計
原文 角色 通用角色 本地角色 許可權物件 mm x 物件 許可權字段 欄位一 負責增刪改 欄位二 負責字段級准入 允許操作 01 03 05 07 允許值 factory1,factory2,factory5 factory7 直觀的說,許可權就是 某人能幹某事 和 某人不能幹某事 之合。在sap...