我想知道是否有人能夠幫助我處理以下問題?授權Web應用程序用戶對用戶信息以及角色
我需要一些更復雜的webapp授權規則,而不僅僅是角色,我工作得很好。 「允許所有管理員允許買家,只要他們具有正確的部門標識並被允許查看該客戶的憑證」即可。
我正在使用自定義標識和自定義主體來存儲信息,例如用戶是否被允許查看所有客戶端或他們可能會看到哪些客戶端。該信息從數據庫中檢索並在創建身份/主體時添加。
我已經創建了一個擴展IPermission,ISecurityEncodable的自定義權限。在此,我已經修改了點播()函數如下:
public void Demand()
{
this._identity = (UserIdentity)Thread.CurrentPrincipal.Identity;
if (Thread.CurrentPrincipal.IsInRole("Admin")) { }
else if ((Thread.CurrentPrincipal.IsInRole("Buyer")) &&
(this._identity.CanViewAllClients) &&
(this._identity.IsInDept(this._departmentID))) { }
else if ((Thread.CurrentPrincipal.IsInRole("Buyer")) &&
(this._identity.CanViewClient(this._requestedClient)) &&
(this._identity.IsInDept(this._departmentID))) { }
else { throw new SecurityException("Custom Permission Denied"); }
}
然後我把這個當我想用
CustomPermission custperm = new CustomPermission(requestedClient, reqClientDept);
custperm.Demand();
這正常授權,但似乎一片狼藉,哈克做事的方式。特別是因爲將我的安全角色用作屬性是很好的,例如
[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public class...
也許有一種方法叫[CustomPrincipalPermission(SecurityAction.Demand,授權= TRUE)]用自定義IsAuthorised檢查?這可能嗎?需要執行什麼?
我很抱歉如果有一個簡單的解決方案,我錯過了在線,但放心,我一直在檢查幾天。