Некоторые языки предназначены для выполнения прекрасный в неисключительных условиях, и это принесено в жертву за ужасную производительность, с которой они сталкиваются во время исключительных условий, следовательно очень строгий контроль типов. Другие были просто предназначены для балансировки его с дополнительной обработки.
Время от времени, существует путь больше в игре, чем просто ввод. Возьмите ActionScript, например. 3.0 представил более сильный ввод, но с другой стороны ECMAScript позволяет Вам изменить классы, поскольку Вы считаете целесообразным во времени выполнения, и ActionScript имеет поддержку динамических классов. Очень аккуратный, но факт они заявляют, что динамические классы не должны использоваться в "стандартных" средствах сборок, которые это нет - нет для того, когда необходимо избежать рискованных действий.
Базовый LDAP не предоставляет ничего подобного. Учетные данные, которые вы представляете при привязке, используются для остальной части соединения, поэтому, если вы можете держать соединение LDAP открытым для нескольких HTTP-запросов (и совместно использовать LDAP-соединения среди любого количества запущенных вами серверных заданий), тогда вы можете избежать сохранения учетных данных. .
Существуют различные расширения LDAP (в том числе несколько в Active Directory), поэтому возможно, что одно из них добавляет сеансы через соединения, но если это так, я не знаю об этом.
Как своего рода обходной путь, поскольку Active Directory поддерживает GSSAPI и из-за того, как работает Kerberos, вы должны иметь возможность использовать учетные данные пользователя для запроса билета Kerberos для доступа к LDAP, а затем сохранить этот билет как ваше "состояние / сеанс / ?? " токен. Этот билет Kerberos будет действителен только для доступа к LDAP и автоматически истечет, так что это позволит избежать ошибок, связанных с сохранением учетных данных пользователя в сеансе. Я не знаю, поддерживает ли ваша библиотека LDAP GSSAPI и дает ли вам достаточно возможностей для этого или нет.