PHP_LDAP: 测试组织单位是否存在?
PHP_LDAP: Test that Organizational Unit exist?
我想知道是否有人知道通过使用 PHP 的 LDAP 扩展提供 OU 的 DN 来确定特定 OU 是否存在的好方法?
在ldap_search函数上胡思乱想了一段时间,想出了一个比较靠谱的方法。这适用于 Active Directory,我不确定这是否适用于 OpenLDAP。
/**
* @param $ldap
* @param $search_base
* @param $dn
* @return bool
*/
public function test_ou($ldap, $search_base, $dn)
{
$filter = '(&(objectClass=top)(|(objectClass=organizationalUnit)(objectClass=container))(distinguishedName=' . $dn . '))';
$results = ldap_get_entries($ldap, ldap_search($ldap, $search_base, $filter, array('objectGUID')));
return ($results['count'] > 0) ? true : false;
}
我知道的晚了,但也许它可以帮助将来的人
我创建 dn_exists 就像 file_exists (return true 或 false )它在参数中带一个 OU 例如 OU=Utilisateus,DC=company,DC=dz,祝你好运 :)
public function dn_exists($dn){
$filter="(&(ObjectClass=person))";
//$this->ldap_resource_link connection to LDAP
$read = @ldap_search($this->ldap_resource_link, $dn, $filter,array('ou'));
return $read;
}
我想知道是否有人知道通过使用 PHP 的 LDAP 扩展提供 OU 的 DN 来确定特定 OU 是否存在的好方法?
在ldap_search函数上胡思乱想了一段时间,想出了一个比较靠谱的方法。这适用于 Active Directory,我不确定这是否适用于 OpenLDAP。
/**
* @param $ldap
* @param $search_base
* @param $dn
* @return bool
*/
public function test_ou($ldap, $search_base, $dn)
{
$filter = '(&(objectClass=top)(|(objectClass=organizationalUnit)(objectClass=container))(distinguishedName=' . $dn . '))';
$results = ldap_get_entries($ldap, ldap_search($ldap, $search_base, $filter, array('objectGUID')));
return ($results['count'] > 0) ? true : false;
}
我知道的晚了,但也许它可以帮助将来的人 我创建 dn_exists 就像 file_exists (return true 或 false )它在参数中带一个 OU 例如 OU=Utilisateus,DC=company,DC=dz,祝你好运 :)
public function dn_exists($dn){
$filter="(&(ObjectClass=person))";
//$this->ldap_resource_link connection to LDAP
$read = @ldap_search($this->ldap_resource_link, $dn, $filter,array('ou'));
return $read;
}