DirectorySearcher по умолчанию использует Active Directory для производства, хотя я передаю IP-адрес сервера Dev LDAP (edir)

Я заметил интересное поведение при попытке подключиться к edirectory с помощью DirectoryServices.

Это код, который я использовал для извлечения информации из нашего каталога разработки, но я заметил, что он извлекает информацию из нашего производственного каталога Active Directory (из того, что я читал, DirectorySearcher можно использовать и в edir):

string devIP = "xxx.xxx.xxx.xxx:636";
DirectorySearcher directorySearcher = new DirectorySearcher(devIP);
directorySearcher.Filter = "(&(objectClass=user)(uid=" + "jsmith" + "))";
SearchResultCollection searchResults = directorySearcher.FindAll();

(Я знаю, что он попадает в производство, потому что jsmith не существует в dev. Еще одна вещь, которую я заметил, это то, что возвращаемые атрибуты являются атрибутами AD, такими как memberOf и т. д.)

Что, наконец, заставило его работать, так это использование System.DirectoryServices.Protocols:

LdapConnection con = new LdapConnection(new LdapDirectoryIdentifier("d1.domain.com:636"));
con.Credential = new NetworkCredential("cn=USERNAME,ou=XXX,o=XXX", "password");
con.SessionOptions.SecureSocketLayer = true;
con.SessionOptions.VerifyServerCertificate = new VerifyServerCertificateCallback(ServerCallback);
con.AuthType = AuthType.Basic;
using (con)
{
  con.Bind();
}

Я провел некоторое исследование, но не мог понять, почему DirectorySearcher перенаправлялся в prod, хотя я явно указал IP-адрес и имя пользователя?

Сервер разработки находится в домене, отличном от моего локального компьютера (и я запускаю код на своем локальном компьютере). Возможно ли, что, поскольку моя машина находится в том же домене, что и prod, по умолчанию она использует Prod Active Directory и просто игнорирует devIP, который я передаю?


person Bavitha    schedule 28.01.2015    source источник


Ответы (1)


Та же основная причина со следующим:

Проверьте, допустим ли DirectoryEntry в DirectorySearcher

Конструктор, который вы использовали DirectorySearcher(string), на самом деле ожидает фильтр, но не корневой путь поиска.

person baldpate    schedule 29.01.2015