Использование .Invoke("Groups")
вызывает собственный метод Windows IADSUser::Groups
.Он только получает прямое членство (не вложенные группы) и не дает вам основную группу.Я не совсем уверен, откуда она получает эту информацию, поэтому я не могу точно сказать, что она делает и не дает вам.
Вы пытаетесь найти группы для текущего пользователь (пользователь в данный момент вошел в систему)?Потому что есть другие способы сделать это, чтобы вы могли читать группы с токена аутентификации.Как в ASP.NET, так и в настольном приложении вы можете использовать UserPrincipal.GetAuthorizationGroup () .
Но в противном случае вы могли бы использовать tokenGroups
*Атрибут 1017 *, который дает вам все вложенные группы безопасности для целей авторизации:
de.RefreshCache(new [] {"tokenGroups"});
var groups = de.Properties["tokenGroups"];
Однако он дает вам идентификатор безопасности групп, который может быть не сразу полезен, если вам нужны имена.
Есть несколько способов получить все группы пользователей, которые зависят от того, сколько информации вы ищете и от вашей среды.Я написал статью об этой вещи несколькими примерами методов: Active Directory: поиск всех групп пользователей