我們總是在大型系統中使用基於角色的問題。在這樣的軟件中,我們希望超級用戶能夠設置其組織用戶的權限。我們可以創建許多原子角色並創建一個控制檯來爲用戶分配角色。然後,我們必須創建多個角色,例如:我們如何在動態環境中使用基於角色的安全性?
addProduct命令,RemoveProduct,EditProduct,AcceptPurchase,DenayPurchase,...
通過這種方式,對於一箇中等系統,我們應該有至少50角色!那麼管理員如何爲每個用戶分配這些角色?
我們第一眼兩個解析:
要在數據庫中創建一個表(例如集團)的用戶和角色之間放。然後管理員應該創建一組角色,然後將一個組分配給多個用戶。
將角色用作一組權限。例如,創建PermissionInRoles表併爲每個角色分配權限,然後將角色分配給用戶。
我們很快發現第一種方法是廢話。我們用第二種方法實施了幾個項目。但是現在我們想在除WCF RIA身份驗證服務之外的sivlerlight項目中使用它。它只是支持角色。例如,每個用戶實例都有一個IsInRole方法,我們實施我們的IsInPermission方法。
使用RequiresRole屬性進行服務時存在另一個問題。我不能,也不想爲每個服務方法設置硬編碼角色名稱。
知道我們對基於角色的安全設計感到困惑!我們如何在這些情況下使用它?