Вы должны использовать System.DirectoryServices.AccountManagement .Это намного проще.Вот хороший проект кода статья , который дает вам обзор всех классов в этой библиотеке.Прежде всего, получение атрибута memberOf
не даст вам первичную группу.Кроме того, если у пользователя есть локальная группа домена из другого домена, она не будет отображаться в атрибуте memberOf
.Вы можете проверить здесь для деталей.Вот как выглядит код, если вы переключитесь на использование System.DirectoryServices.AccountManagement.Следующий код может найти непосредственные группы, назначенные этому пользователю, включая первичную группу.
UserPrincipal user = UserPrincipal.FindByIdentity(new PrincipalContext (ContextType.Domain, "mydomain.com"), IdentityType.SamAccountName, "username");
foreach (GroupPrincipal group in user.GetGroups())
{
Console.Out.WriteLine(group);
}