Вопрос по ldap, c++, search, active-directory, windows-server-2008-r2 – Поиск LDAP с winldap.h на сервере AD

2

Я пытаюсь выполнить поиск LDAP, и он не работает на моем тестовом сервере Active Directory. Я использую этот код:

#include <winldap.h>
...
LDAP* ld = ldap_init("AD-servername", 389);
int myVersion =LDAP_VERSION3;
ldap_set_option(ld, LDAP_OPT_PROTOCOL_VERSION, &myVersion);
ldap_connect(ld, NULL);
//ldap_simple_bind_s(ld, NULL, NULL); I tried using this line too. but got the same error
LDAPMessage *pMsg = NULL;
int retVal = ldap_search_s(ld, "dc=myDomain,dc=extension", LDAP_SCOPE_SUBTREE, "(samAccountName=testaccount)", NULL, NULL, &pMsg);
//retVal = 1 which is LDAP_OPERATIONS_ERROR

Что я делаю неправильно?

ldap_set_option а такжеldap_connect вернуть обаLDAP_SUCCESS, Мой фактический DNdc=dl,dc=intern какое мое доменное имя - & gt;dl.intern. juergen d
Каковы значения, возвращаемые функцией "ldap_set_option"? и "ldap_connect"? Вы пытались использовать только один DN вместо 2? Попробуйте использовать простой фильтр. besworland

Ваш Ответ

1   ответ
4

must привязка с использованием действительного имени учетной записи и пароля для серверов Microsoft Active Directory, в противном случае будет возвращена ошибка операций для всех запросов, кромеочень маленькая горстка.

то есть что:

ldap_simple_bind_s(ld, NULL, NULL);

Необходимо заменить на что-то вроде:

char *username = "cn=aUser,ou=Users,dc=myDomain,dc=extension";
char *password = "this is the password";
ldap_simple_bind_s(ld, username, password);
Да, я этого не заметил.
Отлично - теперь работает! juergen d

Похожие вопросы