Это не так часто, чтобы увидеть так много предложений в одном «если». Обычно вы обнаруживаете, что вам нужно вложить «если», чтобы получить необходимую логику, когда вам нужно выполнить некоторую строку независимо от истинности некоторых условий. Я не говорю, вкладывайте их, если вам это не нужно, если все они должны быть проверены одновременно. Только если есть какая-то общая функциональность. Другим соображением является установка логической переменной с результатом некоторого набора этих условий, которые могут облегчить понимание. Если ваши переменные являются массивом или коллекцией, можете ли вы пройти через них? Вы тестируете их все против -1?
Отражение показывает, что когда оно используется LdapConnection , это просто оболочка для ldap_extended_operation API. Похоже, это обычный API, у которого есть документация для нескольких платформ. Например, эта страница показывает, как использовать его с OID .
Ответ Джеффа дал мне несколько хороших намеков в правильном направлении. API ldap_extended_operation
- это API, специфичный для сервера каталогов, и каждый сервер каталогов может поддерживать или не поддерживать некоторый набор нестандартных операций. Операции, поддерживаемые сервером каталогов, можно найти в атрибуте rootDse
supportedExtension
.
Каждое поддерживаемое расширение имеет уникальный OID, который является свойством ExtendedRequest.RequestName
и необязательно требуются данные: ExtendedRequest.RequestValue
. Какие данные вы должны предоставить для какого запроса, вероятно, можно найти где-нибудь в документации для сервера Active Directory.