LdapConnection Bind() - время ожидания истекло?
У меня есть некоторый код, который позволяет администраторам управлять пользователями / группами их организации и т. Д. И выполнять расширенные команды (например, отключение учетных записей и т. Д.). Этот код полностью отделен от основного пользовательского приложения и доступен только администраторам. В связи с этим я подключаюсь к LDAP, используя пользователя с правами администратора, поэтому у меня есть доступ ко всем необходимым командам
Что мне интересно, так это то, что я могу просто создать экземпляр своего LdapConnection, затем привязать его к серверу и затем кэшировать это соединение для использования во всем приложении (например, сохранить его в объекте приложения или в сеансе), а не создавать его и связывать каждый раз Мне нужно позвонить? Другими словами, истекает ли когда-либо срок действия объекта LdapConnection, время ожидания или отмены привязки через определенное время? Похоже, что у него есть свойство "Тайм-аут" для объекта подключения, но, похоже, оно относится к каждому отдельному вызову. Правильно ли я предположить, что после привязки я могу просто продолжать использовать это соединение? Любая причина дизайна не делать этого?
благодарю вас!
2 ответа
В зависимости от конфигурации используемого вами сервера каталогов, он может быть настроен на:
- время простоя соединения
- наложить ограничение на количество операций на соединение
- наложить ограничение на скорость операций
- разрешить клиенту оставаться на связи в течение неопределенного времени
Как только соединение было связано с идентификатором аутентификации с помощью операции BIND (известной как установление состояния авторизации для соединения), это состояние аутентификации остается в силе в течение всего срока действия соединения или до тех пор, пока не будет отправлен следующий запрос BIND. эта связь.
Я не эксперт по C#, но я ожидаю, что объект LdapConnection будет перекрывать пул соединений, а не представлять само физическое соединение.