简体   繁体   English

LDAP搜索查询不起作用?

[英]LDAP search query not working?

Trying to search for information about a person in a directory with LDAP . 尝试使用LDAP在目录中搜索有关人员的信息。 everything else works except this search string but no one can figure out what is wrong. 除此搜索字符串外,其他所有方法都起作用,但是没有人能找出问题所在。

The result just comes up with an empty set despite that it returns values in bash. 尽管返回的结果以bash表示,但结果只是带有一个空集。

$result = ldap_search(
    $ds, 
    $base_domain, 
    '(CN=user)'
) or die("error in search");



<?php
$DEBUGGING = True;
if($DEBUGGING)
{
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
}



$server = 'ldaps://ds.cisco.com';
#$port = 639;
$port = 636;


$ds=ldap_connect($server, $port);
echo "connect result is " . $ds . "<br />";

if ($ds)
{

    $r = ldap_bind($ds, $username, $password);
    echo "Bind result is " . $r . "<br />";



    $base_domain = 'OU=Standard,OU=Cisco Groups,DC=cisco,DC=com';
    #$base_domain = 'dc=cisco,dc=com';
    #$base_domain = 'OU=Employees,OU=Cisco Groups,DC=cisco,DC=com';
    #$result = ldap_search($ds, $base_domain, '(&(CN=selyons))') or die ("error in search");
    #$result = ldap_search($ds, $base_domain, '(&(membersOf=CN=it-puppet-masters,OU=Standard,OU=Cisco Groups,DC=cisco,DC=com)(sAMAccountName=*))') or die ("error in search");

    $result = ldap_search($ds, $base_domain, '(CN=user)') or die("error in search");

    echo "SEARCHING" . "<br />";


    #while ($row=mysql_fetch_array($result, MYSQL_NUM))
    #{
        #print_r($row);
        #print($row[0]);
    #}

    $info = ldap_get_entries($ds, $result);



    #$arraystring = print_r($info, true);
    echo "<pre>";
    print_r($info);
    echo "</pre>";
    #echo $arraystring;
    #print_r($info[699][2][0]);
    #print_r($info[699][2][1]);
    #print_r($info[699][2][2]);
    #print_r($info[699][2][3]);
    #print_r($info[699][2][4]);

    #print_r($info[699][2]);
    #print_r($info[699]);
    #$members = $info[0]["member"];
    #echo $members;

    #for($i = 0; $i < 30; $i++)
    #{
        #print_r($info[699]);
    #}
}


?>

You are looking at the container OU=Standard,OU=Cisco Groups,DC=cisco,DC=com for an object where CN=user is true. 您正在查看容器OU=Standard,OU=Cisco Groups,DC=cisco,DC=com ,其中CN=user为true的对象。 Perhaps you meant (objectClass=user) or do you really expect to have an object whose CN attribute is set to user ? 也许您的意思是(objectClass=user)还是真的希望有一个CN属性设置为user的对象?

That seems lightly implausible. 这似乎有点难以置信。 You might be thinking about the AD default setup, where the Users container is actually a container and thus cn=Users and not ou=Users as you might have otherwise expected (nor dc=Users ). 您可能正在考虑AD的默认设置,其中Users容器实际上是一个容器,因此cn=Users而不是ou=Users与您期望的一样(也不是dc=Users )。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM