Подключение к Active Directory для получения сведений о пользователе с помощью C#

#visual-studio-2010 #c#-4.0 #active-directory

#visual-studio-2010 #c #-4.0 #active-directory

Вопрос:

Я нашел статью о получении пользователей из active Directory здесь

Так что, возможно, моему коду понравится это

 String strPath = "format of this path";
DirectoryEntry entry = null;
entry = new DirectoryEntry(strPath);

DirectorySearcher mySearcher = new DirectorySearcher(entry);

mySearcher.Filter = ("ObjectCategory=user");

foreach (SearchResult result in mySearcher.FindAll())
{
    String strName = result.GetDirectoryEntry().Name;
    //Do whatever
}
  

Не могли бы вы, пожалуйста, объяснить strPath здесь?? Каков формат этого??

Примечание: Я знаю, что информацию о моем сервере можно получить, используя мой локальный ip «198.168.1.182» в целях тестирования.

Я не уверен, что то, о чем я думаю, правильно.

Пожалуйста, помогите!!!

Ответ №1:

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

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

В принципе, вы можете определить контекст домена и легко находить пользователей и / или группы в AD:

 // set up domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find user by name
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "John Doe");

// if we found user - inspect its details
if(user != null)
{
    string firstName = user.GivenName;
    string lastName = user.Surname;
    string email = user.EmailAddress;
    string phone = user.VoiceTelephoneNumber;
}
  

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

Комментарии:

1. ответ marc_s неполный. Метод FindyByIntenty требует минимум двух аргументов. Основным контекстным объектом «ctx» должен быть первый аргумент.

2. @jdmorris: спасибо, вы абсолютно правы — исправил мой ответ

3. Большое вам спасибо. Я искал решение весь день. Это сделало работу с ним очень простой.

Ответ №2:

strPath — это URL LDAP, дополнительную информацию о котором можно найти здесь:http://en.wikipedia.org/wiki/LDAP#LDAP_URLs

Структура может показаться немного странной на первый взгляд, но пример в википедии дает хорошее представление об этом.