解開EAS許可權與角色之迷

2022-02-26 12:28:21 字數 1398 閱讀 1724

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