LDAP_search PHP

时间:2012-08-03 17:35:40

标签: php ldap

我需要使用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");
    }

2 个答案:

答案 0 :(得分:0)

我愿意打赌.必须被转义。

答案 1 :(得分:0)

属性值在RFC4511中定义。在属性值中使用的八位字节由所讨论的属性类型的语法定义。如果samAccountName的语法允许使用点(.)字符而不要求转义所述字符,则无需转义它们。

母语可能总是需要转义字符。

  • 使用ldapsearch命令行工具验证是否可以从目录中检索cn值中包含点的条目

  • 只是为了咧嘴笑,使用“\2e”代替“.”来转义属性值中的点,看看会发生什么。

  • 可能与您的问题无关,但如果每个条目都有cn属性,则无需在搜索过滤器中使用当前过滤器组件cn=*

    < / LI>

另见