Запрос LDAP для группы пользователей определенного пользователя - PullRequest
0 голосов
/ 16 марта 2011

Я должен проверить группы пользователей LDAP Active Directory для конкретного пользователя в C #.Я имею в виду, что я передаю это имя пользователя методу, и он возвращает мне список группы, к которой принадлежит этот пользователь.Можете ли вы помочь мне в этом.Я ищу много, но каждый раз получаю новую ошибку.

Путь LDAP: 192.168.1.4

Имя домена: Arslan

Имя пользователя: ArslanP

Пароль: testad

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Поскольку вы работаете в .NET 3.5 и выше, вам следует проверить пространство имен System.DirectoryServices.AccountManagement (S.DS.AM). Читайте все об этом здесь:

Управление принципами безопасности каталогов в .NET Framework 3.5

Как правило, добавьте ссылку на сборку System.DirectoryServices.AccountManagement, и тогда вы сможете определить контекст домена и легко найти пользователей и / или группы в AD:

using System.DirectoryServices.AccountManagement;

public List<GroupPrincipal> GetGroupsForUser(string username)
{
  List<GroupPrincipal> result = new List<GroupPrincipal>();

  // set up domain context - if you do a lot of requests, you might
  // want to create that outside the method and pass it in as a parameter
  PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

  // find user by name
  UserPrincipal user = UserPrincipal.FindByIdentity(username);

  // get the user's groups
  if(user != null)
  {
     foreach(GroupPrincipal gp in user.GetAuthorizationGroups())
     {
         result.Add(gp);
     }    
  }

  return result;
}

Новый S.DS.AM позволяет очень легко играть с пользователями и группами в AD:

0 голосов
/ 17 марта 2011

Этот связанный вопрос может вам помочь:

Получить список пользователей из Active Directory в данной группе AD

Он задает обратный вопрос, а именно какq список пользователей, когда вы знаете группу, но вам могут быть полезны и другие ответы.

См. также ответ на этот вопрос:

Как получить всегруппы AD для конкретного пользователя?

...