Php 如何获取所有LDAP条目?
我知道如何为使用搜索的身份验证进行LDAP绑定,但如果我想要所有全名的条目,我该怎么做…那么我如何才能获得所有人的全名或电子邮件 下面我使用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
<?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];我也想要电话号码,但不知道取电话号码是哪一个