LDAP zapytania winldpa.h

0

Witam,

Korzystam z biblioteki winldap.h do łączenia się z serwerem LDPA. Mam połączenie, potrafię wysyłać proste zapytania. Niestety nie jestem w stanie sprawdzić do jakiej grupy należy dany użytkownik. Użytkownik Admin, należy do grupy OWNER. Ustawiam:

string * wsk_Filter  = L"(memberOf=*OWNER*)" ;
string * wsk_Attributes[0] = L"memberOf";
string * wsk_DN = L"CN=ADMIN, OU=WE,OU=Users,OU=local,DC=ad,DC=local,DC=com,DC=pl" ;

errorCode = ldap_search_s(
                handle,    // Session handle
                wsk_DN,              // DN to start search
                LDAP_SCOPE_SUBTREE, // Scope
                wsk_Filter,          // Filter
                wsk_Attributes,      // Retrieve list of attributes
                0,                  // Get both attributes and values
                &pSearchResult);    // [out] Search results

errorCode pokazuje mi ciągle błąd w zapytaniu, zła składania filter/atribute. Jak powinnem zbudować zapytanie aby otrzymać czy w danej grupie jest wybrany użytkownik? Jak odebrać stringa, w którym będzie coś w stylu "CN=OWNER,CN=ADMINS,CN=LOCAL". Jakbym miał taką odpowiedź to już bym sobie poradził. Jak buduje się zapytania do LDPA po winapi ?

https://msdn.microsoft.com/en-us/library/aa366974(v=vs.85).aspx

0

Nigdy się tym nie bawiłem, ale...
Masz tutaj błąd:

string * wsk_Attributes[0] = L"memberOf";

Powinno być

string * wsk_Attributes[0] = L"memberOf";
wsk_Attributes[1] = 0;

Natomiast jako filtr użyłbym:

string * wsk_Filter  = L"(&(objectCategory=person)(memberOf=CN=OWNER,OU=ouGrupy,OU=local,DC=ad,DC=local,DC=com,DC=pl))";

1 użytkowników online, w tym zalogowanych: 0, gości: 1