2011-10-21 33 views
6

He pasado la mayor parte del día investigando este problema. Por alguna razón, no puedo por la vida de averiguar qué está mal con el código a continuación. Es una versión recortada/modificada del ejemplo dado en el Manual de PHP.¿Cómo uso correctamente ldap_search() en PHP?

Cuando ejecuto el siguiente código, que reciben el mensaje de error:

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

código relevante:

<?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); 
?> 

he utilizado un script VBS para imprimir el que ha iniciado sesión de usuario (Me) completa DN. A partir de eso, conecté los campos OU y DC apropiados.

Cualquier ayuda sería muy apreciada. Si se necesita más aclaración, no dude en preguntar.

+0

¿Has probado esto? http://us3.php.net/manual/en/function.ldap-search.php#45388 –

+0

Tengo. Eso fue lo primero que encontré como una solución. Estoy usando eso y LDAP_OPT_PROTOCOL_VERSION para forzar la Versión 3, que fue otra solución que la mayoría acordó como útil. He intentado usar uno y no el otro también, sin cambios en la salida. –

+0

¿Alguna otra sugerencia? Pasé los últimos días trabajando en ello un poco más y nada ha aparecido. –

Respuesta

6

Finalmente encontré el problema. Nuestro servidor AD permite un enlace anónimo, pero aparentemente no permite búsquedas sin credenciales. El código anterior funciona bien una vez que llamo a ldap_bind() con credenciales.

Cuestiones relacionadas