2011-10-21 10 views
6

Ho trascorso la maggior parte della giornata fino ad ora alla ricerca di questo problema. Per qualche ragione, non posso per la vita di me capire cosa non va nel codice qui sotto. È una versione tagliata/modificata dell'esempio fornito nel manuale PHP.Come uso correttamente ldap_search() in PHP?

Quando eseguo il seguente codice, viene visualizzato il messaggio di errore:

Warning: ldap_search() [function.ldap-search]: Search: Operations error in C:\wamp\www\ldap.php on line 12 

codice rilevante:

<?php 
$ds=ldap_connect("serverName.first.second.third.fourth"); 

ldap_set_option($ds, LDAP_OPT_REFERRALS, 0); 
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 

    $r=ldap_bind($ds);  
    $sr=ldap_search($ds, "OU=InfoSystems,OU=Domain Users,DC=first,DC=second,DC=third,ED=fourth", "sn=MyActualSurName"); 
    ldap_close($ds); 
?> 

ho usato uno script VBS per stampare l'attuale login dell'utente (Me) completa DN. Da quello, ho inserito i campi OU e DC appropriati.

Qualsiasi aiuto sarebbe molto apprezzato. Se sono necessari ulteriori chiarimenti, non esitate a chiedere.

+0

Hai provato questo? http://us3.php.net/manual/en/function.ldap-search.php#45388 –

+0

Ho. Questa è stata la prima cosa in cui mi sono imbattuto in una soluzione. Sto usando questo e LDAP_OPT_PROTOCOL_VERSION per forzare la versione 3, che era un'altra soluzione che è più d'accordo sul fatto che sia utile. Ho provato a usare uno e non anche l'altro, senza alcun cambiamento nell'output. –

+0

Qualche altro suggerimento? Ho passato gli ultimi giorni a lavorarci ancora e non è successo niente. –

risposta

6

Finalmente trovato il problema. Il nostro server AD consente il binding anonimo, ma a quanto pare non consente la ricerca senza credenziali. Il codice sopra funziona bene una volta che chiamo ldap_bind() con le credenziali.

Problemi correlati