Dotnetnuke 替换不推荐的RoleControl.GetUserRoles()角色

Dotnetnuke 替换不推荐的RoleControl.GetUserRoles()角色,dotnetnuke,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.R

在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
函数已被弃用


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

我在任何地方都找不到关于这个函数的任何信息,所以我浏览了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
对象-如果是以循环方式

如果你填充UserInfo对象,那里会有一个角色数组,列出用户所处的所有角色。

是-就像我上周的回答一样。