2013-06-25 2 views
4

내가 성공적으로 다음 코드를 사용하여 사용자에 대한 우리의 Active Directory를 쿼리하고 나에게 distinguishedName. 하지만 PHP Warning: ldap_search(): Search: Bad search filterLDAP 필터는 distinguishedName을

내가 다른 인용, 더 괄호를 포함 가능성의 수를 해봤와 등, dn보다는 distinguishedName을 사용하여,

$filter = (&(objectCategory=person)(dn='CN=McBossy\, Boss,OU=Users,OU=CentralOffice,DC=ds,DC=example,DC=com')); 

$manager = ldap_search($ldapconnection, $baseDn, $filter, $fields); 

쿼리가 실패 관리자의 레코드를 쿼리 할 때

내가 뭘 잘못하고 있으며 관리자 기록을 얻는 올바른 방법은 무엇입니까?

답변

7

dn는 (는) 속성이 아닙니다. 필터에는 속성 유형, OID 및 이름 만 사용할 수 있습니다.

manager 특성을 얻은 경우 관리자 DN에 대한 특성을 가져 오려면 manager 특성 값을 검색 요청의 기본 개체로 사용하십시오. 검색 범위를 BASE, 필터를 (&) 또는 (objectClass=*)으로 설정하고 필요한 속성을 요청하십시오. 그런 다음 검색 요청을 서버에 전송하고 응답을 해석하십시오.

+0

확인. 그런 다음 사용자의 관리자 (내가 아는 한)에 대한 유일한 링크가'manager' 속성이라는 점을 감안할 때 관리자의 사용자 레코드를 얻으려면 해당 정보를 어떻게 사용합니까? – dnagirl

+0

다음과 같은 필터를 사용하십시오 :'(manager = cn = user, dc = example, dc = com)' –

+0

현재 사용자를 관리자로 둔 사람들을 모두 찾지 않겠습니까? 현재 사용자의 관리자를 만나고 싶습니다. 내가 두꺼운다면 미안해. – dnagirl