3

在 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功能已被弃用。

这个功能有什么替代品?

4

2 回答 2

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

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

于 2013-03-13T15:09:52.713 回答
1

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

于 2013-03-17T16:00:22.823 回答