1

尝试在目录中搜索有关某人的信息LDAP。除了这个搜索字符串外,其他一切都有效,但没有人能找出问题所在。

结果只是出现了一个空集,尽管它在 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]);
    #}
}


?>
4

1 回答 1

0

您正在查看容器中是否存在真实OU=Standard,OU=Cisco Groups,DC=cisco,DC=com的对象。CN=user也许您的意思是(objectClass=user)或者您真的希望有一个CN属性设置为的对象user

这似乎有点难以置信。您可能正在考虑 AD 默认设置,其中用户容器实际上是一个容器,因此cn=Usersou=Users您可能预期的不同(也不是dc=Users)。

于 2013-07-24T01:55:14.837 回答