从一个专有名称,我试图使用LDAP检索Active Directory用户记录。这是我发送的查询...
(&(objectCategory=person)(objectClass=user)(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL))
但是,这不会返回任何结果。
如果我使用......
(&(objectCategory=person)(objectClass=user)(CN=George Hutchins))
我得到了记录。我只想使用后一个查询,但如果有两个George Hutchins,那么我将得到2个记录而不是我正在寻找的记录。
有没有办法查询以获得具有专有名称的确切用户(CN = George Hutchins,OU = Contractors,DC = MYCO,DC = LOCAL)?顺便说一句,我知道这个字符串是正确的,因为我从Active Directory中的组记录(成员属性)中提取它。
答案 0 :(得分:1)
完全可分辨名称在LDAP中始终是唯一的。
类似于:
的简单查询(&(objectCategory=person)(objectClass=user))
并将搜索库设置为:
(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)
搜索范围:BASE (0)
在Search Request内应该有效。
-Jim
答案 1 :(得分:1)
您可以使用distinguishedName
属性进行专门查询:
(distinguishedName=CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)
原始查询不起作用的原因是由于此部分:(CN=George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL)
。要求AD返回的是LDAP对象,其CN
属性的值为George Hutchins,OU=Contractors,DC=MYCO,DC=LOCAL
。但是,CN
对他来说只有George Hutchins
。