我的问题是我有这样的 AD 设置:
--ROOT
--depot A
--computers
--users
--depot B
--computers
--users
我目前正在开发公司内部网,我需要获取所有这些子目录中的所有用户,以允许公司周围的人通过搜索找到任何人。
问题是我的 ldap_search 当前没有搜索子树。因此,当前仅返回根联系人。我的代码如下:
$ldap_connection = ldap_connect($ldap_host, $ldap_port);
if (FALSE === $ldap_connection){
die("<p>Failed to connect to the LDAP server</p>");
}
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, 3) or die('Unable to set LDAP protocol version');
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, 0); // We need this for doing an LDAP search.
if (TRUE !== ldap_bind($ldap_connection, $ldap_username, $ldap_password)){
die('<p>Failed to bind to LDAP server.</p>');
}
//------------------------------------------------------------------------------
// Get a list of all Active Directory users.
//------------------------------------------------------------------------------
$ldap_base_dn = 'DC=yearsleygroup,DC=net';
$name= jo;
$search_filter = "(|(mail=*@belfield.co.uk)(mail=*@yearsley.co.uk)(mail=*@icepak.co.uk)(mail=*@luckyred.co.uk))";
$justthese = array("cn", "physicaldeliveryofficename", "telephonenumber", "mail");
$result = ldap_search($ldap_connection, $ldap_base_dn, $search_filter,$justthese);
$entries = ldap_get_entries($ldap_connection, $result);
至于为什么会发生这种情况,我没有什么大惊小怪的。我当前的设置是在后台使用 AD 的 IIS 上的 PHP 5.3。
如何返回这些不同的 OU 用户,是进行单独 ldap 查询然后连接结果然后搜索的唯一方法吗?
Ps ldap 新手,php 相对较新,但了解所有基本概念。欢迎任何帮助,如果我没有正确询问,请指出。
乔