Получить список групп для данного UserPrincipal

Я хочу получить список групп, в которых находится пользователь.

Это мой код:

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "mydomain.ac.uk",   "DC=mydomain,DC=AC,DC=UK", "user", "password");

UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, "MyUser");

PrincipalSearchResult<Principal> results = user.GetGroups();

foreach(Principal p in results)
{
   Response.Write(p.Name);
}

Когда я бегу, я получаю следующую ошибку в строке Response.Write(p.Name);

System.Runtime.InteropServices.COMException: указанный атрибут службы каталогов или значение не существует.

Когда я проверил количество результатов, он вернул 9 и первая группа DomainUsers,

Как я могу перебрать все 9 групп в списке? Благодарю.

Ниже приведен список пользователей, которых я получаю:

2 ответа

При пропуске свойства контейнера LDAP, как описано в классе PrincipalContext, пользователь, выполняющий код, должен иметь разрешения на чтение для обоих по умолчанию. User Контейнер (то есть CN=Users,DC=yourDomain,DC=COM) и Computers Контейнер (то есть CN=Computers,DC=yourDomain,DC=COM).

Если у пользователя нет необходимых разрешений, вы получите следующие сообщения об ошибках:

Указанный атрибут службы каталогов или значение не существует

  • "context.Container" выдал исключение типа "System.NullReferenceException" string {System.NullReferenceException}

  • ((новый System.Linq.SystemCore_EnumerableDebugView(groups)).Items[5]).Description 'вызвал исключение типа' System.Runtime.InteropServices.COMException 'string {System.Runtime.InteropServices.COMException}

Пожалуйста, проверьте мой пост в блоге Проблемы с аутентификацией с PrincipalContext

Попробуй что-то вроде

foreach(Principal p in results)
{ 
   if (p is GroupPrincipal) 
      Response.Write(p.DisplayName); 
}

Я знаю, это звучит глупо, но это работало на меня в прошлом. Ваши результаты выглядят так, как будто на самом деле найдено только 1 группу безопасности и 8 "других" групп. Эти "другие" группы могут не обладать этими атрибутами.

Другие вопросы по тегам