2012-05-17 37 views
2

我想獲得系統中所有的成員角色以及系統中的所有成員。Umbraco 5如何獲得所有角色和用戶

我使用

System.Web.Security.Roles.GetAllRoles(); 
System.Web.Security.Roles.GetUsersInRoles(roles[0]); 

和其他幾個嘗試過,但他們都扔不執行錯誤。

我使用在IIS Express和SQL Express上本地運行的V5.1的乾淨VisualStudio Umbraco模板。

任何想法將不勝感激。

回答

1

我注意的是,供應商未在填充作用,從後臺上市查詢,來到這不僅是getallroles不叫得出結論,it was never implemented.

相反,蜂巢中查詢角色列表。

儘管有人聲稱會員服務再次從5.1開始,但它帶來了一些特別嚴重的限制。

如果您致力於5.1並且您需要一個自定義角色提供程序,那麼您需要提出一個偶爾將角色同步到Umbraco的解決方案。

如果您不需要自定義角色提供程序,那麼您可以查詢配置單元以提取相關內容。特殊的網址是:

安全://型材

用於通過蜂房籍包裝來存儲文件數據。資料數據是不能被儲存在ASP.Net的MembershipProvider

安全的任何成員/用戶額外的數據://用戶羣體

用於存儲後臺辦公用戶組的數據/角色。

安全://成員組

用於存儲成員組/角色的數據。

安全://成員類型

用於存儲架構的數據成員類型

安全:由所使用的//成員數據

UmbracoMembershipProvider存儲ASP。淨的MembershipProvider信息

安全://用戶

用於查詢後臺辦公用戶蜂房成員提供包裝

安全://成員

使用查詢Umbraco會員的Hive會員提供商包裝

最後,請注意,現在會員服務已被抽象化。 Umbraco對會員資格有一個全新的獨立界面。

而不是使用「基線」 .NET成員提供程序和角色提供程序,您可以使用會員服務在當前的IRoutableRequestContext:

例如而不是使用Membership.ValidateUser(),你可以使用包裝提供的MembershipProvider的_context.Application.Security.Members.Validate()。

祝你好運,並張貼你自己的任何發現,因爲社區一起跋涉通過這個版本。

編輯:利用上下文來獲取成員的數據,正是我一直在尋找獲得成員角色

using (var securityUow = context.Application.Hive.OpenReader<ISecurityStore>()) 
{ 
    return securityUow.Repositories.GetEntityByRelationType<UserGroup> 
    (
      FixedRelationTypes.DefaultRelationType, 
      Umbraco.Framework.Security.Model.FixedHiveIds.MemberGroupVirtualRoot 
    ).OrderBy(x => x.Name).ToList(); 

} 
+0

列表的例子,我並不需要爲這個特殊的自定義角色提供項目。感謝您的幫助。 單獨註釋什麼是特殊網址,您如何使用它們? 對不起,Umbraco作爲一個整體還是新手。 – HJ05

相關問題