在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
函数已弃用。
这个功能有什么替代方案?
答案 0 :(得分: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
对象 - 如果是圆形的话!
答案 1 :(得分:1)
如果填充UserInfo对象,那里有一个Roles数组,列出了用户所在的所有角色。