Ответ 1
Если вы проверяете текущего пользователя и знаете имя нужной вам группы, вам не нужно перечислять все группы. Вот пример кода в VB.NET:
Public Function IsInGroup(ByVal GroupName As String) As Boolean
Dim MyIdentity As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
Dim MyPrincipal As System.Security.Principal.WindowsPrincipal = New System.Security.Principal.WindowsPrincipal(MyIdentity)
Return MyPrincipal.IsInRole(GroupName)
End Function
Аналогично в С#:
private static bool IsInGroup(string GroupName)
{
System.Security.Principal.WindowsIdentity MyIdentity = System.Security.Principal.WindowsIdentity.GetCurrent();
System.Security.Principal.WindowsPrincipal MyPrincipal = new System.Security.Principal.WindowsPrincipal(MyIdentity);
return MyPrincipal.IsInRole(GroupName);
}
Дополнительные примеры можно найти в документации WindowsIdentity, если вам нужно настроить его, чтобы проверить другое членство пользователя или что-то еще.