為了方便本人閱讀,文字格式略有調整。
[flags]特性[flag]告訴編譯器,public enum flag:long
當編譯器看到flag列舉時,它會充許你用|(or)操作符組合列舉值,
就像二的整數冪一樣,
例如 flag administer=flag.view|flag.edit|flag.delete;表示三種許可權的組合。
基礎知識:
當編譯器看到flag列舉時,它會充許你用|(or)操作符組合列舉值,就像二的整數冪一樣,例如
flag administer=flag.view|flag.edit|flag.delete;在asp.net系統中,httpcontext.current.user實現了乙個介面iprincipal,iprincipal包含了另乙個介面identity//常用操作,檢查是否存在
flag administer=flag.view|flag.edit|flag.delete;
public bool check(flag administer,flag mask)
//呼叫 check(administer,flag.edit)將返回true.
public flag setbit(flag administer,flag mask)
administer |= mask;//操作相當於 administer = administer |mask;
//從列舉中減去一種狀態
administer &=mask;
//如 :
flag administer=flag.view|flag.edit|flag.delete;
//如需要禁止刪除許可權.
administer &=flag.delete;
//另外,標記為flag的列舉型別,可以不設定值
public enum flag:long
//我們在設計user類的時候繼承此介面如何使用:public class user:iprincipal
set
}} // 實現iprincipal介面方法
public iidentity identity
}public bool isinrole(string role)
//怎樣和asp.net掛鉤呢,這裡可以在登陸時做檢查
}//attributeusage 第乙個引數表示該屬性可以應用於類,方法,屬性,**上inherited 檢查繼承的許可權。
//allowmultiple 充許多次應用。
//按下來,設計乙個基類,繼承自page:
public class pagebase : page
}/// /// 檢查函式呼叫許可權
///
/// 方法名
public void checkmethod(string methodname)
}return;
}public void check(flag permissions)
", httputility.urlencode("您沒有許可權訪問該資源"));
response.redirect(url);}}
", httputility.urlencode("您沒有許可權訪問該資源"));
response.redirect(url);}}
protected override void oninit(eventargs e)
}
[checkpermission(2, flag.view)]若沒有檢視許可權,會自運導向錯誤頁面。public partial class mypage : pagebase
在類上應用挺方便。
方法上應用我於乙個方法比較麻煩,我還沒有找到在頁面class裡怎麼獲取當前呼叫的類名。
可以呼叫 checkmethod(方法名稱); 如:
[checkpermission(2, flag.delete)]這還是需要重複勞動。public partial class mypage : pagebase
}
RBAC角色許可權設計
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
rbac許可權管理設計 RBAC使用者角色許可權設計方案
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...
RBAC使用者角色許可權設計方案
rbac role based access control,基於角色的訪問控制 就是使用者通過角色與許可權進行關聯。簡單地說,乙個使用者擁有若干角色,每乙個角色擁有若干許可權。這樣,就構造成 使用者 角色 許可權 的授權模型。在這種模型中,使用者與角色之間,角色與許可權之間,一般者是多對多的關係。...