已弃用的RoleController.GetUserRoles()的替换

col*_*ron 3 dotnetnuke

在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;
}
Run Code Online (Sandbox Code Playgroud)

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

这个功能还有什么选择?

col*_*ron 7

我无法在任何地方找到任何信息,所以我浏览了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);
}
Run Code Online (Sandbox Code Playgroud)

这可以替代上面的代码,获取UserRoleInfo对象 - 如果是以圆形的方式!