функция ldap_bind_s (winldap.h)
Функция ldap_bind_s синхронно выполняет проверку подлинности клиента на сервере LDAP.
Синтаксис
WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
[in] LDAP *ld,
[in] const PSTR dn,
[in] const PCHAR cred,
[in] ULONG method
);
Параметры
[in] ld
Дескриптор сеанса.
[in] dn
Указатель на строку, завершающуюся null, которая содержит различающееся имя записи, используемой для привязки. Это может быть имя пользователя, имя участника-пользователя, имя пользователя в стиле WinNT или другое имя, которое сервер каталогов будет принимать в качестве идентификатора.
[in] cred
Указатель на строку, завершающуюся нулевым значением, которая содержит учетные данные для проверки подлинности. С помощью этого параметра можно передать произвольные учетные данные. Формат и содержимое учетных данных зависит от параметра метода . Дополнительные сведения см. в подразделе "Примечания".
[in] method
Указывает используемый метод проверки подлинности. Дополнительные сведения и список допустимых методов асинхронной проверки подлинности см. в разделе Примечания. Дополнительные сведения и описание допустимого метода асинхронной проверки подлинности см. в разделе ldap_bind.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет LDAP_SUCCESS.
Если функция завершается сбоем, она возвращает код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения.
Комментарии
Введение контроля учетных записей в Windows Server 2008 и Windows Vista имеет очень важное значение в отношении внесения изменений или дополнений в LDAP. При входе пользователя в контроллер домена с ограниченным маркером администратора контроля учетных записей и использованием учетных данных NULL любое изменение или добавление каталога или любая операция изменения схемы завершится ошибкой. К ним относятся поиск DirSync, получение СПИСКА SACL из атрибута ntSecurityDescriptor объекта при использовании SecurityDescriptorFlags и многие другие операции.
Все эти действия завершатся ошибкой из-за недостаточных прав доступа.
Если контроль учетных записей действует при входе администратора в контроллер домена, администратор получит ограниченный маркер в сеансе входа. Если затем он использует ldap_bind_s с учетными данными NULL , операции, которые вносят изменения или дополнения, завершатся ошибкой.
Реализация ldap_bind_s поддерживает методы проверки подлинности, перечисленные в следующей таблице. Вызов ldap_bind_s с параметром LDAP_AUTH_SIMPLE эквивалентен вызову ldap_simple_bind_s.
Метод | Описание | Учетные данные |
---|---|---|
LDAP_AUTH_SIMPLE | Проверка подлинности с паролем в виде открытого текста. | Строка, содержащая пароль пользователя. |
LDAP_AUTH_DIGEST | Пакет дайджест-проверки подлинности. | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти в систему от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на структуру SEC_WINNT_AUTH_IDENTITY с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_DPA | Распределенная проверка подлинности по паролю. Используется системой членства Майкрософт. | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти в систему от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на структуру SEC_WINNT_AUTH_IDENTITY с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_MSN | Служба проверки подлинности сети (Майкрософт). | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти в систему от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на структуру SEC_WINNT_AUTH_IDENTITY с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_NEGOTIATE | Универсальные службы безопасности (GSS) (Snego). Не обеспечивает проверку подлинности, но вместо этого выбирает наиболее подходящий метод проверки подлинности из списка доступных служб и передает все данные проверки подлинности этой службе. | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на SEC_WINNT_AUTH_IDENTITY или SEC_WINNT_AUTH_IDENTITY_EX структуру с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_NTLM | NT LAN Manager | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на SEC_WINNT_AUTH_IDENTITY или SEC_WINNT_AUTH_IDENTITY_EX структуру с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_SICILY | Описывает согласование пакетов с серверами MSN. | Чтобы войти в систему от имени текущего пользователя, задайте для параметров dn и credзначение NULL. Чтобы войти в систему от имени другого пользователя, задайте для параметра dnзначение NULL , а для параметра cred — указатель на структуру SEC_WINNT_AUTH_IDENTITY с соответствующим именем пользователя, доменным именем и паролем. |
LDAP_AUTH_SSPI | Является устаревшей. Включено для обеспечения обратной совместимости. При использовании этой константы выбирается служба согласования GSS (Snego). | То же, что и LDAP_AUTH_NEGOTIATE. |
Для асинхронной проверки подлинности при привязке используйте LDAP_AUTH_SIMPLE с ldap_bind.
Операция привязки идентифицирует клиента к серверу каталогов, предоставляя различающееся имя и некоторый тип учетных данных для проверки подлинности, например пароль. Точные учетные данные зависят от используемого метода проверки подлинности. Если передать значение NULL для учетных данных с ldap_bind_s() (не простой), будут использоваться учетные данные текущего пользователя или службы. Если указан простой метод привязки (как в ldap_simple_bind_s), он эквивалентен паролю с открытым текстом NULL . Дополнительные сведения см. в разделе ldap_bind.
Имейте в виду, что серверы LDAP 2 требуют привязки приложения перед попыткой выполнения других операций, требующих проверки подлинности.
Многопоточность. Привязка вызовов небезопасна, так как они применяются к подключению в целом. Будьте осторожны, если потоки совместно используют подключения и пытаются выполнить операции привязки с другими операциями.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | winldap.h |
Библиотека | Wldap32.lib |
DLL | Wldap32.dll |