我需要使用LDAP在AD-PHP中进行研究,但每次我都没有成功。
我正在通过sAMAccountName过滤。当我使用名称简单的用户( Ex:打印机)时,一切正常,但当名称不简单时(例如: paulo.neves),它不起作用。< / p>
有什么想法吗?
$usuario = "paulo.neves"; $base_dn = "ou=Administradores, dc=tiisa, dc=com, dc=br"; $filter = "(&(objectClass=user)(objectCategory=person)(cn=*)(samaccountname=$usuario))"; if (!($search=@ldap_search($connect, $base_dn, $filter))) { die("Unable to search ldap server"); }
答案 0 :(得分:0)
我愿意打赌.
必须被转义。
答案 1 :(得分:0)
属性值在RFC4511中定义。在属性值中使用的八位字节由所讨论的属性类型的语法定义。如果samAccountName
的语法允许使用点(.
)字符而不要求转义所述字符,则无需转义它们。
母语可能总是需要转义字符。
使用ldapsearch
命令行工具验证是否可以从目录中检索cn
值中包含点的条目
只是为了咧嘴笑,使用“\2e
”代替“.
”来转义属性值中的点,看看会发生什么。
可能与您的问题无关,但如果每个条目都有cn
属性,则无需在搜索过滤器中使用当前过滤器组件cn=*