在不使用LDAP的情况下搜索Active Directory

时间:2012-06-05 19:31:30

标签: c# active-directory

我在VSX8中在WinXP / Win7 / WinServer2003环境中使用C#。

有没有办法在不涉及LDAP的情况下搜索活动目录?

我在Active Directory中创建了用户,但是当我使用此

进行搜索时
        DirectorySearcher dirSearcher = new DirectorySearcher(
            new DirectoryEntry("LDAP://DC=kmmnet,DC=com"),
            "(objectClass=user)",
            new string[] { "sAMAccountName", "displayname", "givenname", "sn" });
        foreach (SearchResult s in dirSearcher.FindAll())
        {
            System.DirectoryServices.PropertyCollection p = s.GetDirectoryEntry().Properties;
        }

它无法找到一些用户。

感谢 肖恩

1 个答案:

答案 0 :(得分:2)

尝试将PageSize属性从其默认值零开始:

dirSearcher.PageSize = 9000;

PageSize的任何非零值都会导致发生分页,因此您将收到所有结果(批量等于PageSize)。

您还可以尝试更多地过滤搜索(例如,排除非活动用户等)。

并且,有an upper limit on the number of results which a directory server will return响应LDAP查询。此限制由域上的管理员控制和设置。我相信默认值是1000。