roleManager與角色管理受權

總覽地址 數據庫

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

其中基本概述是第一篇:瞭解角色管理瀏覽器

   

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

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

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

   

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

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

 

再配置受權部分,則角色與權限的關聯就創建起來code

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

 

剩餘部分是用戶與角色的關聯。若是使用的是Windows身份認證,則使用回windows自己的用戶與角色組之間的關聯;若是使用的是Forms身份認證,則須要使用如下代碼來實現orm

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

 

角色須要先創建,但一次創建後下次重複創建則會報錯,一樣用戶添加角色也會重複添加會報錯。blog

驗證用戶是否具備指定角色,能夠用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中,但是庫的如今還沒有附加成功,於是沒法查看裏面內容。

相關文章
相關標籤/搜索