通过 UserID 从 RoleGroup 获取 RoleName
Get RoleName from a RoleGroup by UserID
我有一个 RoleGroup
,里面有一些 Roles
。一个用户只能属于这些角色之一。我如何根据用户所属的 RoleGroup
获得 RoleName
?有什么想法吗?
Dim roleGroupOmniProfiles = RoleController.GetRoleGroupByName(PortalSettings.Current.PortalId, "OmniProfiles")
问题出在这里
Dim omniProfile = roleGroupOmniProfiles.Roles.Any(Function(role) oUser.UserID)
roleGroupOmniProfiles
包含 KeyValuePair<string, RoleInfo>
的集合,因此您可以如下所示循环它们。
但我不确定您能否通过 UserID
从 RoleGroup
获得 RoleName
,因为 UserID
没有直接 link 到 RoleGroup
。不应该是你根据UserID
从一个用户那里得到所有的角色,然后检查Roles
属于哪个RoleGroup
,如果有的话。
C#
var roleGroupOmniProfiles = RoleController.GetRoleGroupByName(PortalId, "OmniProfiles");
if (roleGroupOmniProfiles != null)
{
foreach (KeyValuePair<string, RoleInfo> role in roleGroupOmniProfiles.Roles)
{
Label1.Text += role.Key + " | " + role.Value.RoleName + "<br>";
}
}
或单行
RoleInfo roleInfo = roleGroupOmniProfiles.Roles.Where(x => x.Value.RoleID == 15).FirstOrDefault().Value;
VB
If (Not (roleGroupOmniProfiles) Is Nothing) Then
For Each role As KeyValuePair(Of String, RoleInfo) In roleGroupOmniProfiles.Roles
Label1.Text += role.Key + " | " + role.Value.RoleName + "<br>"
Next
End If
更新
要检查用户是否属于某个组,您可以使用此
DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUserByName("userName");
bool isInGroup = roleGroupOmniProfiles.Roles.Keys.Any(role => user.IsInRole(role));
我有一个 RoleGroup
,里面有一些 Roles
。一个用户只能属于这些角色之一。我如何根据用户所属的 RoleGroup
获得 RoleName
?有什么想法吗?
Dim roleGroupOmniProfiles = RoleController.GetRoleGroupByName(PortalSettings.Current.PortalId, "OmniProfiles")
问题出在这里
Dim omniProfile = roleGroupOmniProfiles.Roles.Any(Function(role) oUser.UserID)
roleGroupOmniProfiles
包含 KeyValuePair<string, RoleInfo>
的集合,因此您可以如下所示循环它们。
但我不确定您能否通过 UserID
从 RoleGroup
获得 RoleName
,因为 UserID
没有直接 link 到 RoleGroup
。不应该是你根据UserID
从一个用户那里得到所有的角色,然后检查Roles
属于哪个RoleGroup
,如果有的话。
C#
var roleGroupOmniProfiles = RoleController.GetRoleGroupByName(PortalId, "OmniProfiles");
if (roleGroupOmniProfiles != null)
{
foreach (KeyValuePair<string, RoleInfo> role in roleGroupOmniProfiles.Roles)
{
Label1.Text += role.Key + " | " + role.Value.RoleName + "<br>";
}
}
或单行
RoleInfo roleInfo = roleGroupOmniProfiles.Roles.Where(x => x.Value.RoleID == 15).FirstOrDefault().Value;
VB
If (Not (roleGroupOmniProfiles) Is Nothing) Then
For Each role As KeyValuePair(Of String, RoleInfo) In roleGroupOmniProfiles.Roles
Label1.Text += role.Key + " | " + role.Value.RoleName + "<br>"
Next
End If
更新
要检查用户是否属于某个组,您可以使用此
DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUserByName("userName");
bool isInGroup = roleGroupOmniProfiles.Roles.Keys.Any(role => user.IsInRole(role));