2

我需要使用 LDAP 研究 AD-PHP,但每次都没有成功。

我正在按 sAMAccountName 过滤。当我使用名称简单的用户(例如: printer)时,一切正常,但是当名称不简单(例如: paulo.neves)时,它就不起作用了。

有任何想法吗?

    $usuario = "保罗.内维斯";

    $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("无法搜索 ldap 服务器");
    }

4

2 回答 2

0

我愿意打赌.必须逃脱。

于 2012-08-03T17:52:40.803 回答
0

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

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

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

  • \2e只是为了笑,通过使用“ ”而不是“”来转义属性值中的点,.看看会发生什么。

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

也可以看看

于 2012-08-03T21:39:33.063 回答