使用ldap列出来自用户的组

时间:2010-09-23 23:17:30

标签: php ldap

我真的很熟悉LDAP,只是在我的php服务器和我的广告服务器之间建立了联系。我成功地验证了用户身份。现在我想列出用户所在的所有群组,看他是否是管理员(或者可能有其他方式?)。

到目前为止,我有这个:

    $ldap = ldap_connect("192.168.1.108");
    if ($ldap && $bind = @ldap_bind($ldap, $name."@foobar.com", $pw)) {
        // ldap_search and ldap_get_entries here i guess, but how?
    }

我已经通过阅读php.net上的手册尝试了ldap_search,但我根本无法让它工作。有人可以告诉我如何让它发挥作用吗?

2 个答案:

答案 0 :(得分:4)

您可能需要查看ldap_get_entries功能。下面可能是一些代码可以帮助你解决我曾经用于扫描会员资格的问题。 member可能在您的配置上有所不同,因此如果您遇到错误,我建议您打印整个$data数组。希望是你的起点。

// Users
$query = ldap_search($ldap, "cn=Users, dc=test, dc=local", "cn=*");
// Read all results from search
$data = ldap_get_entries($ldap, $query);

// Loop over 
for ($i=0; $i < $data['count']; $i++) {
    print_r($data[$i]['member']);
    echo "\n\n";    
}

答案 1 :(得分:4)

我得到了这篇文章:http://www.php.net/manual/en/ref.ldap.php#99347 非常感谢Aaron。