C# 如何获取特定OU中的目录项

C# 如何获取特定OU中的目录项,c#,winforms,active-directory,C#,Winforms,Active Directory,我有以下代码 // List of strings for your names List<string> allUsers = new List<string>(); using (var context = new PrincipalContext(ContextType.Domain, "bellbain.local")) { using (var sea

我有以下代码

 // List of strings for your names
            List<string> allUsers = new List<string>();



            using (var context = new PrincipalContext(ContextType.Domain, "bellbain.local"))
            {
                using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
                {
                    foreach (var result in searcher.FindAll())
                    {
                        DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
                        //  allUsers.Add(("First Name: " + de.Properties["givenName"].Value));
                        allUsers.Add(de.Properties["sAMAccountName"].Value.ToString());


                    }
                }
            }
            listBox1.DataSource = allUsers;

但是列表框是空的…

您的字符串看起来就是这样做的-这取决于您的广告的布局。那么,上述措施如何不起作用呢?除了你似乎没有使用你的ou字符串之外?我的错误字符串是失败尝试的一部分,我现在已将其删除。遗憾的是,这是一个有用的部分。由于字符串不起作用,它应该像这样被清除。我应该把它放回去吗?谢谢你的提示,关于解决方案有什么想法吗?嗯,你的字符串看起来就是这样做的-这取决于你的广告是如何布置的。那么,上述措施如何不起作用呢?除了你似乎没有使用你的ou字符串之外?我的错误字符串是失败尝试的一部分,我现在已将其删除。遗憾的是,这是一个有用的部分。由于字符串不起作用,它应该像这样被清除。我应该把它放回去吗?谢谢你的建议,有什么解决办法吗?
    string ou = "OU=TestDept,DC=mydomain.local";

    using (var context = new PrincipalContext(ContextType.Domain, "bellbain.local",ou))
    {
        using (var searcher = new PrincipalSearcher(new UserPrincipal(context)))
        {
            foreach (var result in searcher.FindAll())
            {
                DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
                //  allUsers.Add(("First Name: " + de.Properties["givenName"].Value));
                allUsers.Add(de.Properties["sAMAccountName"].Value.ToString());


            }
        }
    }
    listBox1.DataSource = allUsers;