Как передать номер порта 3269 для достижения LDAPS? - PullRequest
0 голосов
/ 13 июля 2020

Как передать номер порта 3269 для достижения LDAPS в приведенном ниже случае?

DirectoryEntry d = new DirectoryEntry("DC=EXAMPLE,DC=COM", username, password);

Для вызова LDAPS я могу привязать номер порта 3269 к имени домена, и он работает. Ниже приведен пример кода, который работает:

DirectoryEntry d = new DirectoryEntry("LDAP://EXAMPLE.COM:3269", username, password);
DirectorySearcher ds = new DirectorySearcher(d, "sAMAccountName=" + username);
DirectoryEntry de = ds.FindOne().GetDirectoryEntry();

Однако, если я получаю имя сервера типа «DC = EXAMPLE, DC = COM», как я могу передать номер порта 3269 для достижения LDAPS?

DirectoryEntry d = new DirectoryEntry("DC=EXAMPLE,DC=COM", username, password);

Пожалуйста, предложите, заранее большое спасибо.

1 Ответ

1 голос
/ 13 июля 2020

Вы описываете два разных способа указания пути LDAP:

  1. Использование имени сервера, которое включает использование только имени домена, поскольку DNS будет возвращать IP-адреса каждого контроллера домена. например, "LDAP://EXAMPLE.COM:3269"
  2. Использование отличительного имени объекта в домене, к которому вы хотите выполнить привязку. например, "LDAP://DC=EXAMPLE,DC=COM" (вам нужен префикс LDAP://)

Однако они не исключают друг друга. Вы можете использовать оба вместе, разделив их /.

Но если вы собираетесь использовать отличительное имя root домена, вы можете просто исключить его, так как это дефолт. Но также, если вы подключаетесь к глобальному каталогу, вы, вероятно, не захотите указывать какое-либо отличительное имя, поскольку, если вы используете этот объект DirectoryEntry в поиске, ваши результаты будут ограничены только этим доменом, что побеждает цель использования G C.

Кроме того, если вы хотите подключиться к глобальному каталогу, вам необходимо использовать GC:// вместо LDAP://. По умолчанию GC:// использует порт 3268, но если вы хотите использовать G C через SSL, вам нужно указать порт 3269, как и вы.

Так что это, вероятно, то, что вы хотите:

var d = new DirectoryEntry("GC://EXAMPLE.COM:3269", username, password);
...