roleManager與角色管理授權


總覽地址

https://msdn.microsoft.com/zh-cn/library/9ab2fxh0.aspx

其中基本概述是第一篇:了解角色管理

   

來自 <https://msdn.microsoft.com/zh-cn/library/5k850zwb.aspx>

第二篇是類的參考而已,以后進階使用時可供查詢之用。

最后一篇是介紹自定義角色提供程序RoleProvider要重寫的方法及方法的描述。

   

若要使用角色管理,首先要啟用它,並配置能夠利用角色的訪問規則(可選)。然后可以在運行時使用角色管理功能處理角色。

<roleManager 
enabled="true" 
cacheRolesInCookie="true" >
</roleManager>

 

再配置授權部分,則角色與權限的關聯就建立起來

<authorization>
<allow roles="members" />
<deny users="*" />
</authorization>

 

剩余部分是用戶與角色的關聯。如果使用的是Windows身份認證,則使用回windows本身的用戶與角色組之間的關聯;如果使用的是Forms身份認證,則需要使用以下代碼來實現

///創建角色
Roles.CreateRole("members");
///角色與用戶關聯
Roles.AddUsersToRole("JoeWorden", "manager");
string[] userGroup = new string[2];
userGroup[0] = "JillShrader";
userGroup[1] = "ShaiBassli";
Roles.AddUsersToRole(userGroup, "members");

 

角色需要先建立,但一次建立后下次重復建立則會報錯,同樣用戶添加角色也會重復添加會報錯。

驗證用戶是否具有指定角色,可以用IprincipalIsInRole方法,而獲取用戶有多少角色,則需要用RolePrincipalGetRoles()方法了。當啟用了角色管理后,User則是RolePrincipal的實例。

緩存角色信息

如果用戶的瀏覽器允許 Cookie,則 ASP.NET 可以選擇在用戶計算機的加密 Cookie 中存儲角色信息。在每個頁面請求中,ASP.NET 讀取 Cookie 並根據 Cookie 填充該用戶的角色信息。此策略可最大程度地減小從數據庫中讀取角色信息的需要。如果用戶的瀏覽器不支持 Cookie 或者 Cookie 已禁用,則只在每個頁面請求期間緩存角色信息。

角色提供程序

默認情況下使用的RoleProvider是SqlRoleProvider,它的連接字符串是data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true,數據庫存放於項目文件夾App_Data中,可是庫的現在尚未附加成功,因而無法查看里面內容。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM