C# ldap循环通过OU并获取用户c

C# ldap循环通过OU并获取用户c,c#,ldap,C#,Ldap,我在服务器上有一则广告。 例如,这是我的结构 -A ->彼得 --B -->萨布丽娜 --BA --->约翰 --咩 ---->坦率的 --BB --->迈克尔 -C 我想从B开始遍历这些组,只获取用户。 在这个例子中,我应该有以下用户John、Frank、Michael、Sabrina。 我可以用过滤器取吗?找到了解决方案: 首先,我得到所有OU和嵌套OU的列表。 然后我在我的列表中循环查找我的用户 List<string> orgUnits = new List&

我在服务器上有一则广告。 例如,这是我的结构

-A

->彼得

--B

-->萨布丽娜

--BA

--->约翰

--咩

---->坦率的

--BB

--->迈克尔

-C

我想从B开始遍历这些组,只获取用户。 在这个例子中,我应该有以下用户John、Frank、Michael、Sabrina。 我可以用过滤器取吗?

找到了解决方案: 首先,我得到所有OU和嵌套OU的列表。 然后我在我的列表中循环查找我的用户

        List<string> orgUnits = new List<string>();
        DirectoryEntry startingPoint = new DirectoryEntry("LDAP://OU=STARTINGOU,DC=intranet,DC=pspiess,DC=local");
        DirectorySearcher searcher = new DirectorySearcher(startingPoint);
        searcher.Filter = "(objectCategory=organizationalUnit)";
        foreach (SearchResult res in searcher.FindAll()) {
            orgUnits.Add(res.Path);
        }
        orgUnits.ForEach(delegate(String orgUnit) {
            var entry = new DirectoryEntry(orgUnit);
            var aDs = new DirectorySearcher(entry) { Filter = "(&(objectCategory=Person)(objectClass=user))" };

            foreach (SearchResult aSr in aDs.FindAll()) {
                //Some Code
            }
        });