Umbraco 5如何获得所有角色和用户

时间:2012-05-17 22:53:22

标签: umbraco umbraco5

我希望获得系统中的所有成员角色以及系统中的所有成员。

我尝试过使用

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

以及其他几个,但他们都抛出了未实现的错误。

我正在使用在IIS Express和SQL Express上本地运行的V5.1的干净VisualStudio Umbraco模板。

任何想法都会非常感激。

1 个答案:

答案 0 :(得分:1)

我注意到,在后台填充角色列表时没有询问提供者,并得出的结论是,不仅没有调用getallroles,it was never implemented.

相反,将查询配置单元以查找角色列表。

尽管声称会员服务从5.1开始再次出现,但它带来了一些特别严重的限制。

如果你致力于5.1并且你需要一个自定义角色提供者,那么你需要提出一个偶尔会将角色同步到Umbraco的解决方案。

如果您不需要自定义角色提供者,则可以查询配置单元以提取相关内容。特殊网址是:

安全://型材

用于通过Hive Membership Wrapper存储配置文件数据。配置文件数据是无法存储在ASP.Net MembershipProvider中的任何成员/用户的附加数据

安全://用户组

用于存储后台用户组/角色的数据。

安全://构件的基团

用于存储成员组/角色的数据。

安全://构件类型

用于存储成员类型的架构数据

安全://成员资格数据

由UmbracoMembershipProvider用于存储ASP.Net MembershipProvider信息

安全://用户

用于查询后台用户的Hive成员资格提供程序包装

安全://成员

用于查询Umbraco成员的Hive成员资格提供程序包装

最后,请注意,会员服务现已被抽象化。对于Umbraco的会员资格,有一个全新的独立界面。

您可以使用当前IRoutableRequestContext中提供的成员资格服务,而不是使用“基线”.net成员资格提供程序和角色提供程序:

e.g。您可以使用包含所提供的MembershipProvider的_context.Application.Security.Members.Validate(),而不是使用Membership.ValidateUser()。

祝你好运,并发布你自己的任何调查结果,因为社区一起在这个版本中跋涉。

编辑:获取成员角色列表的示例

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();

}