1

我正在尝试使用 ldap 搜索活动目录。我希望能够返回用户的电子邮件地址。如何才能做到这一点?到目前为止,我有以下内容,但似乎什么也没发生。

我只想根据 $filter 中给出的属性返回邮件。ldap 绑定似乎工作正常。

谢谢 :)

<!DOCTYPE HTML>
<html>
<head>
<title>Cisco Guest Register</title>
</head>

<body>

<?php


$ldaprdn  = "CN=antwest,OU=Employees,OU=Cisco Users,DC=cisco,DC=com";    
$ldappass = 'Chandler1';

// connect to ldap server
$ldapconn = ldap_connect("ldap://ds.cisco.com:389")
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 "Connection to LDAP Failed";
}

echo "Connected to LDAP";

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);

$filter="(|(cn=antwest*)(ou=cisco*))";

$justthese = array("mail");

$sr=ldap_search($ldapconn, $ldaprdn, $filter, $justthese);

$info = ldap_get_entries($ldapconn, $sr);

echo $info["count"]." entries returned\n";

}
?>

</body>

</html>
4

2 回答 2

1

在调用ldap_bind之前设置ldap_set_option很重要:

$ldapconn = ldap_connect("ldap://ds.cisco.com:389");

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);

$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
于 2015-12-01T08:58:53.303 回答
0

要仅打印电子邮件,并且如果您的搜索成功,请使用以下行:

echo $info[0]["mail"][0];
于 2013-04-25T21:21:34.070 回答