| Предыдущий | Следующий |
| ERROR_DS_ENCODING_ERROR | ERROR_DS_FILTER_UNKNOWN |
ERROR_DS_DECODING_ERROR
Ошибка указывает на некорректные байты, а не на семантический отказ каталога
ERROR_DS_DECODING_ERROR означает, что полученное или предоставленное значение не является допустимой кодировкой структуры, ожидаемой Active Directory. Типичные случаи включают неправильно сформированные управляющие элементы LDAP, усечённые поля длины BER, неправильный тег ASN.1, недопустимые вложенные данные управления или специально кодируемый атрибут, такой как unicodePwd, который не является строкой октетов BER.
Сохраните точные байты на границе протокола до преобразования библиотекой. Проверяйте отдельно внешнее сообщение LDAP и каждое вложенное значение BER, поскольку сбой может возникнуть на любом уровне. Сопоставьте определённые длины с доступным буфером, декодируйте документированную последовательность ASN.1 и убедитесь, что клиент не выполнил декодирование Base64 или преобразование UTF-8 двукратно для двоичных данных. Захват пакетов поможет установить, возникло ли повреждение до передачи, при получении или только во внутреннем анализаторе приложения. Повторная отправка тех же байтов не исправит детерминированную ошибку декодирования.
Данные, необходимые для определения сбойного уровня
- Исходный PDU LDAP или значение атрибута.
- Ожидаемый тип ASN.1 и фактический тег.
- Объявленная длина и число захваченных байтов.
- Шаги преобразования, выполненные клиентом.
Ссылки
- IETF RFC 4511: элементы протокола LDAP ASN.1
- ITU-T X.690: правила декодирования BER
- MS-ADTS: BER-декодирование значений unicodePwd
Нужно найти другой код? Найти другой код состояния или ошибки.