【问题标题】:LDAP user enumeration does not return all domain usersLDAP 用户枚举不返回所有域用户
【发布时间】:2010-12-28 14:15:16
【问题描述】:

我正在使用以下代码获取给定域中所有用户的列表。

DirectoryEntry dirEntry = new DirectoryEntry( "LDAP://domainname", userName, password );
System.DirectoryServices.DirectorySearcher dirSearcher = new System.DirectoryServices.DirectorySearcher( dirEntry );

dirSearcher.Filter = "(&(objectClass=user)(objectCategory=person))";
foreach ( SearchResult resEnt in dirSearcher.FindAll( ) )
{
//Access searchResult
}

但是返回的结果是部分的,并不反映域中的所有注册用户。我在这里有什么遗漏吗?

提前致谢,
巴拉特。

【问题讨论】:

    标签: c# .net ldap ldap-query


    【解决方案1】:

    问你一个愚蠢的问题,返回了多少?有没有可能在 1000 或 2000 左右?

    AD 对在一个简单查询中返回多少搜索结果有默认限制。您可以对结果进行分页,或更改限制,但如果您获得 1000 或 2000 左右,那将是一个致命的赠品。

    在这种情况下,Uwe 使用外部 LDAP 浏览器进行测试的答案将显示相同的结果。 (我个人使用LBEApacheDS。LBE 为 600K 且轻量级)。

    【讨论】:

    • 780/4200。将使用您上面提到的工具并尝试查找结果。谢谢
    【解决方案2】:

    通常,我会使用Softerra LDAP Browser 的免费版本来寻找此类问题(请务必使用免费的 2.6 版,通常仍然足够)。

    【讨论】:

    • 谢谢,@geoffc,我不知道其他人。
    【解决方案3】:

    听起来您需要将 PageSize 设置为非零值。很棒的概述here

    【讨论】:

      猜你喜欢
      • 2014-05-10
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多