【问题标题】:Replacement for deprecated RoleController.GetUserRoles()替换已弃用的 RoleController.GetUserRoles()
【发布时间】:2013-03-13 15:09:52
【问题描述】:

在 DotNetNuke 7 之前,可以使用以下方法获取用户所属角色的列表:

DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController();

foreach (Entities.Users.UserRoleInfo roleInfo in rc.GetUserRoles(portalID, userID))
{
    string roleName = roleInfo.RoleName;
}

但是,从 DNN7 开始,GetUserRoles 函数已被弃用。

这个函数有什么替代方法?

【问题讨论】:

    标签: dotnetnuke


    【解决方案1】:

    我在任何地方都找不到这方面的任何信息,所以我浏览了 API 并发现了以下内容:

    int portalID = PortalController.GetCurrentPortalSettings().PortalId;
    DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController();
    Entities.Users.UserInfo info = DotNetNuke.Entities.Users.UserController.GetUserById(portalID, userID);
    
    foreach (string roleName in info.Roles)
    {
        Security.Roles.RoleInfo role = rc.GetRoleByName(portalID, roleName);
        Entities.Users.UserRoleInfo roleInfo = rc.GetUserRole(portalID, userID, role.RoleID);
    }
    

    这可以替代上面的代码,获取UserRoleInfo 对象——如果是迂回的方式!

    【讨论】:

      【解决方案2】:

      如果您填充 UserInfo 对象,则会有一个 Roles 数组,其中列出了用户所在的所有角色。

      【讨论】:

      • 是的——就像我上周的回答一样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2014-02-19
      • 2019-12-20
      • 2018-06-04
      相关资源
      最近更新 更多