Поиск LDAP работает через ldapsearch через VPN, но не работает в C# (System.DirectoryServices.Protocols) — проблема с поC#

Место общения программистов C#
Anonymous
Поиск LDAP работает через ldapsearch через VPN, но не работает в C# (System.DirectoryServices.Protocols) — проблема с по

Сообщение Anonymous »

I'm troubleshooting a LDAP connectivity issue from a machine connected via VPN.
Let me provide some context I'm working on:
  • My environment is a remote machine connected via VPN, and the script is expected to be running on other remote machines.
  • The LDAP server is accessible via remote through VPN on the 389 порт.
  • Этот сценарий, хотя и работает на .NET, должен быть независимым от ОС и работает на .NET 10+.
Используя этот CLI ldapsearch с той же машины, я могу успешно запросить сервер LDAP:

Код: Выделить всё

ldapsearch -x -H ldap://:389 -D "myDomain\MYUSER" -w MyPassword -b "baseDN" -LLL "(sAMAccountName=MYUSER)"
Это возвращает результаты правильно (он подключает и выбирает пользователей, как и ожидалось).
Проблема заключается в том, что я пытаюсь реализовать те же параметры соединения для подключения к этой службе LDAP через System.DirectoryServices.Protocols. Я думаю, что тот же запрос не работает:

Код: Выделить всё

var identifier = new LdapDirectoryIdentifier("", 389);
using var connection = new LdapConnection(identifier);

connection.AuthType = AuthType.Basic;
connection.Credential = new NetworkCredential("", "");
connection.Bind();

var request = new SearchRequest("", "(objectClass=*)", SearchScope.Subtree, null);

var response = (SearchResponse)connection.SendRequest(request);
Ошибка, которую я получаю на консоли при обнаружении ошибок:

ОШИБКА: Ошибка запроса Active Directory. Сервер LDAP недоступен

Почему ldapsearch работает успешно, а System.DirectoryServices.Protocols завершается сбоем на том же компьютере? Существуют ли различия в механизмах аутентификации (простое связывание и согласование/NTLM/Kerberos) или обработке TLS/StartTLS, погоне за ссылками или таймаутах?
Какая конфигурация требуется в C# для соответствия поведению ldapsearch?
Буду признателен за любую информацию о различиях между клиентами ldapsearch и .NET LDAP.
Я вроде как потерялся, так как для меня это в новинку, и я немного изучил документацию, но безуспешно.
Заранее спасибо

Вернуться в «C#»