Php 如何获取所有LDAP条目?

Php 如何获取所有LDAP条目?,php,ldap,Php,Ldap,我知道如何为使用搜索的身份验证进行LDAP绑定,但如果我想要所有全名的条目,我该怎么做…那么我如何才能获得所有人的全名或电子邮件 下面我使用LDAP绑定进行身份验证,我可以搜索一个人,但如果我想要所有人呢 <?php // using ldap bind $ldaprdn = 'uname'; // ldap rdn or dn $ldappass = 'password'; // associated password // connect to ldap server

我知道如何为使用搜索的身份验证进行LDAP绑定,但如果我想要所有全名的条目,我该怎么做…那么我如何才能获得所有人的全名或电子邮件

下面我使用LDAP绑定进行身份验证,我可以搜索一个人,但如果我想要所有人呢

<?php

// using ldap bind
$ldaprdn  = 'uname';     // ldap rdn or dn
$ldappass = 'password';  // associated password

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }

}

?>

这是我的一些MySQL代码,用于填充html列表:

<ol>     

<?php
mysql_connect("kool", "ohjoa", "sampa") or die(mysql_error());
mysql_select_db("DBtest") or die(mysql_error());

$query = "SELECT * FROM EditOnCall"; 

$result = mysql_query($query) or die(mysql_error());


while($row = mysql_fetch_array($result)){
    echo "<li>".$row['Email']."</li>";
    echo "<br />";
}


?>

</ol>

现在,这将显示电子邮件的html列表。我想做的与LDAP相同,只是在一个目录中显示所有LDAP用户的全名……我的LDAP中只有200人,所以它不会太大


有什么想法吗?

这不是关于如何绑定,而是关于如何搜索。您需要了解(此链接与AD相关,但其中的所有信息都可以应用于任何LDAP节点)

您可以将
*
用作LDAP筛选器中的通配符。假设您希望从名为
cn=Users
的根容器中获取由属性
cn
标识的
objectClass=User
的所有对象-您可以这样做:

$searchResult = ldap_search($ldapconn,'cn=Users','(&(objectClass=User)(cn=*))',array('cn','guid'));
绑定方式影响此原则的唯一方式是,您用于绑定的用户没有权限访问您在目录中查找的对象


如果您显示了更多的代码,说明您正试图执行的操作,我将更详细地编辑此答案。

绑定是LDAP请求的一种类型,搜索是另一种类型的请求。绑定建立连接的身份验证状态,搜索使用基本对象、范围、筛选器和其他可选参数来构建候选条目列表,这些条目将被筛选并返回到LDAP客户端。连接的身份验证状态还将建立某些访问功能,例如可以检索哪些条目、在搜索中可以检索多少条目、在搜索上花费了多少时间、在满足搜索请求的过程中应该检查多少条目以及其他功能。如果不使用根DN,可能无法检索目录中的所有条目,并且LDAP管理员可能会禁止非根DN身份验证状态检索多个条目。有关搜索的详细信息,请参阅“”。有关使用LDAP编程的更多一般信息,请参阅。有关更多详细信息,请参阅

关于筛选器,星号不是所述意义上的通配符
(cn=*)
。这称为状态筛选器,指示在筛选候选列表时,断言中使用的属性(在本例中为
cn
)是否存在于条目中。星号可以用作子字符串筛选器的一部分,例如,
(cn=abc*)
(邮件)=user@example*)


在任何情况下,都应尽可能避免在大目录中使用子字符串筛选器,可能无论如何都是禁止的,就像“拖网”目录一样。

@Nadal我们需要知道的是a)包含目录中所有人的对象的DN是什么b)可以用来识别您想要的对象的东西,没有你不想要的对象(比如
objectClass=Person
)和c)你想要的属性的名称a)DN是ou=People,DC=sde,DC=kozwin,DC=com b)不知道这是什么c)我想要人名和电话号码这将我的ldap用户的ldap用户名和全名分配到会话$\u session['username']=$username$_会话['fullname']=$info[0][cn][0];我也想要电话号码,但不知道取电话号码是哪一个