Novell Ldap: отсутствует тип сообщения LdapSearchResult в поиске LdapSearchQueue followint

#c# #ldap #novell

#c# #ldap #novell

Вопрос:

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

В этом конкретном месте, после запуска Search() метода LdapConnection , я получаю LdapSearchQueue объект, который LdapSearchResult по какой-то причине не содержит. Обратите внимание, что LdapSearchQueue он содержит другие сообщения (в частности LdapSearchResultReference , и LdapResponse ), но не LdapSearchResult . Я могу вручную просмотреть объявление и убедиться, что теоретически оно должно иметь правильный отклик.

Очевидно, что это заканчивается entry тем null , что .

 var filter = $"(amp;(objectClass=User)(sAMAccountName={<user_name>}))";
var searchBase = "DC=<domain_name>,DC=com";
var search = conn.Search(searchBase, LdapConnection.SCOPE_SUB, filter, null, false, null, null);
    LdapMessage message;
    LdapEntry entry = null;
    while ((message = search.getResponse()) != null)
    {
         if (!(message is LdapSearchResult searchResultMessage))
         {
              continue;
         }
         entry = searchResultMessage.Entry;
    }
 

Любой совет приветствуется

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

1. Ну, мы не видим ни привязки, ни фильтра. Кроме того, совпадений может просто не быть. Вы пробовали использовать какой-нибудь браузер LDAP с такой же аутентификацией и фильтрами?

2. @schnitz77. Спасибо.. Я обновил вопрос: я не добавлял привязку / фильтр, потому что он работает / должен работать, но я добавляю фильтр. Я также отметил, что LdapSearchQueue содержит другие сообщения (в частности LdapSearchResultReference , и LdapResponse ), но не LdapSearchResult . Я могу вручную просмотреть объявление и увидеть, что теоретически у него должен быть правильный ответ.

3. Спасибо. Я немного смущен, поскольку вы упомянули Novell — вы запрашиваете eDirectory или Active Directory? Первый не обязательно имеет sAMAccountName вообще в зависимости от установленных расширений каталога.

4. @schnitz77: это Active Directory. Если AD не был настроен на использование sAMAccountName, не сможет ли он получить что-либо в LdapSearchQueue ? Мы получаем некоторые сообщения в результате поиска: просто отсутствует определенное сообщение.

5. Хорошо, теперь понял, вы запрашиваете Active Directory с помощью пакета NuGet Novell. Directory.Ldap, извините за путаницу. Я полагаю, вы не получите никакого соответствия, если это домен до Windows 2000, но это не будет соответствовать вашей проверке вручную.

Ответ №1:

в этом конкретном случае атрибуты UPN и sAMAccountName были разными (результат миграции несколько лет назад), тогда как обычно они имеют одинаковое значение. UPN был предоставлен в клиентском приложении и использовался для успешной аутентификации (для UPN), однако использование того же значения для sAMAccountName вернуло ошибку.