Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl Net::LDAP-在不进行搜索的情况下获取DN?_Perl_Ldap - Fatal编程技术网

Perl Net::LDAP-在不进行搜索的情况下获取DN?

Perl Net::LDAP-在不进行搜索的情况下获取DN?,perl,ldap,Perl,Ldap,我有LDAP条目的DN。我知道我可以搜索它:像这样做: my $search = $ldap->search( base => $dn, scope => "base", filter => "(objectclass=*)", ); my $dn_entry = $ldap->get( $dn ); 但是,我不需要做搜索。我有DN。我只想调出DN条目并直接对其执行操作。大概是这样的: my $search = $ldap->s

我有LDAP条目的DN。我知道我可以搜索它:像这样做:

my $search = $ldap->search( 
    base => $dn, 
    scope => "base",
    filter => "(objectclass=*)",
);
my $dn_entry = $ldap->get( $dn );
但是,我不需要做搜索。我有DN。我只想调出DN条目并直接对其执行操作。大概是这样的:

my $search = $ldap->search( 
    base => $dn, 
    scope => "base",
    filter => "(objectclass=*)",
);
my $dn_entry = $ldap->get( $dn );

是否有一种方法可以从DN字符串本身获取DN条目,或者即使您知道DN本身,也必须搜索该条目?

您所说的是您存储了“可分辨名称”(字符串),而不是DN条目(一个
Net::LDAP::entry
对象)。如果是这种情况,我相信您必须从DN创建一个新的
Net::LDAP::Entry
对象。文档表明,您可以直接将操作应用于此类对象,而无需与服务器同步,但这不会提供给定DN的所有数据。如果需要服务器的数据,需要通过
$ldap->search(…)
获取


您是否考虑过使用
Net::LDAP::LDIF
本地存储DN数据?

使用LDAP,客户端必须始终搜索或使用扩展操作来获取数据。如果您对与条目关联的所有属性感兴趣,并且DN已知,请在搜索请求中使用以下参数:

  • baseObject:已知的DN
  • 搜索范围:base
  • 过滤器:要么
    (&)
    要么
    (objectClass=*)
  • 要返回的属性列表。一些API对所有用户属性使用
    *
    ,对所有操作属性使用
    +

是,我有DN字符串,而不是条目。我们正在从一个
svn\u auth\u文件
转移到LDAP,并且我正在从一个管理链中取出所有用户。经理有一个directReports属性,其中包含直接下属员工的DN字符串。我需要通过这些直接下属来获得他们的直接下属,直到我拥有整个组织。因为我有DN字符串,所以我认为用该DN字符串搜索DN条目是愚蠢的。我希望有办法直接检索DN。是的,我基本上就是这么做的:搜索基数是DN,范围是基数,过滤器是
(objectclass=*)
。我没有想到要把它做成
(&)
。看起来一定有某种方法可以直接获取DN,但是看看各种LDAP API,它们都不包括任何获取条目的方法,除非通过搜索。