roleGroupOmniProfiles
包含 的集合KeyValuePair<string, RoleInfo>
,因此您可以如下所示循环它们。
但是我不确定您是否可以RoleName
从 aRoleGroup
获得,UserID
因为UserID
没有直接链接到RoleGroup
. 不应该是您根据用户获取所有角色UserID
并检查属于哪个RoleGroup
角色Roles
(如果有)。
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));