LdapConnection Bind() - время ожидания истекло?

У меня есть некоторый код, который позволяет администраторам управлять пользователями / группами их организации и т. Д. И выполнять расширенные команды (например, отключение учетных записей и т. Д.). Этот код полностью отделен от основного пользовательского приложения и доступен только администраторам. В связи с этим я подключаюсь к LDAP, используя пользователя с правами администратора, поэтому у меня есть доступ ко всем необходимым командам

Что мне интересно, так это то, что я могу просто создать экземпляр своего LdapConnection, затем привязать его к серверу и затем кэшировать это соединение для использования во всем приложении (например, сохранить его в объекте приложения или в сеансе), а не создавать его и связывать каждый раз Мне нужно позвонить? Другими словами, истекает ли когда-либо срок действия объекта LdapConnection, время ожидания или отмены привязки через определенное время? Похоже, что у него есть свойство "Тайм-аут" для объекта подключения, но, похоже, оно относится к каждому отдельному вызову. Правильно ли я предположить, что после привязки я могу просто продолжать использовать это соединение? Любая причина дизайна не делать этого?

благодарю вас!

2 ответа

Решение

В зависимости от конфигурации используемого вами сервера каталогов, он может быть настроен на:

  • время простоя соединения
  • наложить ограничение на количество операций на соединение
  • наложить ограничение на скорость операций
  • разрешить клиенту оставаться на связи в течение неопределенного времени

Как только соединение было связано с идентификатором аутентификации с помощью операции BIND (известной как установление состояния авторизации для соединения), это состояние аутентификации остается в силе в течение всего срока действия соединения или до тех пор, пока не будет отправлен следующий запрос BIND. эта связь.

Я не эксперт по C#, но я ожидаю, что объект LdapConnection будет перекрывать пул соединений, а не представлять само физическое соединение.

Другие вопросы по тегам