【发布时间】:2016-09-22 20:17:48
【问题描述】:
我试图弄清楚如何在 Symfony3 中使用 Ldap 类。我已成功创建并绑定了一个连接,但我无法获得任何查询结果。为了确保查询确实有效,我运行了一个裸 php 版本:
if($lconn = ldap_connect('ds.mydomain.ca')){
ldap_set_option($lconn, LDAP_OPT_REFERRALS, 0);
ldap_set_option($lconn, LDAP_OPT_PROTOCOL_VERSION, 3);
if($lbind = ldap_bind($lconn,'webuser','password')){
$filter ="(&(sn=Smith)(givenname=J*))";
if(!$result = ldap_search($lconn, "dc=ds, dc=mydomain, dc=ca", $filter)) throw \Exception("Error in search query: ".ldap_error($lconn));
$output = ldap_get_entries($lconn, $result);
}else{
$output='bind failed';
}
} else {
$output= 'connection failed';
}
它返回预期的结果数。
另一方面,使用 Symfony 3 的 Ldap 组件完成的查询返回 0 个结果:
//use Symfony\Component\Ldap\Ldap
$ldap = Ldap::create('ext_ldap', array(
'host' => 'ds.mydomain.ca',
'version' => 3,
'debug' => true,
'referrals' => false,
));
$ldap->bind('webuser', 'password');
$q = $ldap->query("dc=ds, dc=nrc, dc=ca", "(&(sn=Smith)(givenname=J*))");
$output = $q->execute();
知道为什么 Symfony ldap 查询的所有选项都应该与我用于裸 php 查询的选项相同时会失败吗?
【问题讨论】:
-
当您执行
$output->toArray()时没有显示任何内容? Symfony LDAP 查询返回一个集合类。 -
@ChadSikorra 我使用 Twig
dump函数来显示集合。条目数为 0。
标签: ldap symfony ldap-query