我是LDAP新手,所以我将尝试正确解释
我有一个主机名"energia.sise"
我需要获取位于energia.sise/nej/users
中的所有用户
你能告诉我该怎么做吗?
在这段代码中,我尝试根据我的电子邮件获取记录,但是它出错
警告:ldap_search():搜索:没有这样的对象
$base_dn ="OU=users, OU=nej, DC=energia, DC=sise";
$ds = ldap_connect("energia.sise") or die("Невозможно соединиться с $ldaphost");
ldap_bind($ds, "login@energia", "password");
$filter = '(&(objectClass=user)(CN=*)(mail=kosmos*))';
$sr = ldap_search($ds, $base_dn, $filter);
$info = ldap_get_entries($ds, $sr);
最佳答案
正如Terry Gardner所指出的那样,除了不必要的过滤器组件CN = *之外,您的过滤器似乎是正确的。因此,我怀疑您的代码还有其他可能的问题:
ldap_set_option( $ds, LDAP_OPT_PROTOCOL_VERSION, 3 );
ldap_set_option( $ds, LDAP_OPT_REFERRALS, 0 );
当执行这样的搜索操作时,“无此类对象”错误通常是指基本DN不存在的事实。如果没有用户匹配您的过滤器,则服务器将返回一个空结果集。
希望对您有所帮助!
关于PHP ldap搜索: no such object,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15108969/