【问题标题】:Umbraco 5 how to get all roles and usersUmbraco 5 如何获取所有角色和用户
【发布时间】:2012-05-17 22:53:22
【问题描述】:

我想获取系统中所有的会员角色和系统中的所有成员。

我尝试过使用

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

还有其他几个,但它们都抛出未实现的错误。

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

任何想法将不胜感激。

【问题讨论】:

    标签: umbraco umbraco5


    【解决方案1】:

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

    相反,会在配置单元中查询角色列表。

    尽管声称从 5.1 开始重新加入会员服务,但它存在一些特别严重的限制。

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

    如果你不需要自定义的roleprovider,那么你可以查询hive来拉取相关的内容。特殊的网址是:

    security://profiles

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

    security://user-groups

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

    security://member-groups

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

    security://member-types

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

    security://membership-data

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

    security://users

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

    security://members

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

    最后,请注意会员服务现在已被抽象化。 Umbraco 有一个全新的独立界面供会员使用。

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

    例如而不是使用 Membership.ValidateUser(),您将使用 _context.Application.Security.Members.Validate() 来包装提供的 MembershipProvider。

    祝你好运,并在社区一起艰难度过此版本时发布你自己的任何发现。

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

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

    【讨论】:

    • 使用上下文来获取成员数据正是我想要的,我不需要这个特定项目的自定义角色提供程序。感谢您的帮助。另请注意,什么是特殊 URL,您如何使用它们?抱歉,对 Umbraco 来说还是个新手。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 2021-10-06
    • 2015-10-17
    • 2014-05-08
    • 2016-04-17
    • 1970-01-01
    相关资源
    最近更新 更多