Я тщетно искал, как реализовать функцию OpenLDAP ldap_sasl_bind
.
Разрабатываемое приложение требует от меня доступа к Active Directory с использованием OpenLDAP.Я должен привязаться к AD, и каждая программа-пример, которую я просмотрел, использует ldap_simple_bind
или подобную функцию, которая устарела, и, следовательно, я не могу их использовать.
Функция ldap_sasl_bind
имеет параметр для учетных данных пользователя, и я должен предоставить имя пользователя и пароль для аутентификации.Проблема в том, что параметр cred принимает указатель на struct berval
, который я понятия не имею, как реализовать.
Определение berval
в документах Microsoft приведено ниже:
typedef struct berval {
ULONG bv_len;
PCHAR bv_val;
} LDAP_BERVAL, *PLDAP_BERVAL, BERVAL, *PBERVAL, BerValue;
Вотопределение функции ldap_sasl_bind
в OpenLDAP:
int ldap_sasl_bind(LDAP *ld, const char *dn, const char
*mechanism, struct berval *cred, LDAPControl *sctrls[],
LDAPControl *cctrls[], int *msgidp);
Я могу предоставить имя пользователя, просто открыв bv_val
и присвоив ему значение, а также могу указать длину имени пользователя в bv_len
.Но как мне предоставить пароль?