Я успешно запрашивая наш Active Directory для пользователя с помощью следующего кода:LDAP фильтр для DistinguishedName
$filter = (&(objectCategory=person)(samaccountname=someusername));
$fields = array("samaccountname","mail","manager","department","displayname","objectGUID");
$user = ldap_search($ldapconnection, $baseDn, $filter, $fields);
Полученный массив дает это значение для атрибута manager
:
CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com
Это выглядит выдающееся имя мне. Но когда я пытаюсь запросить записи менеджера,
$filter = (&(objectCategory=person)(dn='CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com'));
$manager = ldap_search($ldapconnection, $baseDn, $filter, $fields);
запрос завершается с PHP Warning: ldap_search(): Search: Bad search filter
Я пробовал целый ряд возможностей, включая различные цитаты, более круглые скобки, используя distinguishedName
вместо dn
и т.д.
Что я делаю неправильно и как правильно выбрать запись менеджера?
ok. Затем, учитывая, что единственная ссылка на менеджер пользователя (насколько мне известно) является атрибутом 'manager', как я могу использовать эту информацию для получения пользовательской записи менеджера? – dnagirl
Используйте фильтр: '(manager = cn = user, dc = example, dc = com)' –
Не нашел бы всех людей, у которых был мой текущий пользователь в качестве менеджера? Я хочу получить менеджера моего текущего пользователя. Извините, если я толстый. – dnagirl