Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
C# 如何查找有直接下属的人员,而不在Active Directory中显示直接下属?_C#_Active Directory_Ldap - Fatal编程技术网

C# 如何查找有直接下属的人员,而不在Active Directory中显示直接下属?

C# 如何查找有直接下属的人员,而不在Active Directory中显示直接下属?,c#,active-directory,ldap,C#,Active Directory,Ldap,我正在尝试查找active directory中所有有人向其报告的用户,但我找不到任何代码示例,这些示例允许我排除搜索中没有任何直接报告的用户 有人能帮我吗?LDAP完全把我弄糊涂了。您尝试过这样的过滤器吗(&(objectCategory=person)(objectClass=user)(directReports=*)?以下是我如何解决与您描述的类似问题的示例。我希望这有帮助 DirectorySearcher searcher; SearchResultCollection result

我正在尝试查找active directory中所有有人向其报告的用户,但我找不到任何代码示例,这些示例允许我排除搜索中没有任何直接报告的用户


有人能帮我吗?LDAP完全把我弄糊涂了。

您尝试过这样的过滤器吗<代码>(&(objectCategory=person)(objectClass=user)(directReports=*)?

以下是我如何解决与您描述的类似问题的示例。我希望这有帮助

DirectorySearcher searcher;
SearchResultCollection results;

searcher = new DirectorySearcher();
searcher.Filter = "(&(objectClass=user)(objectCategory=person))";
searcher.PropertiesToLoad.Add("DirectReports");
searcher.PropertiesToLoad.Add("mail");
searcher.SearchRoot = utilityDomain;

Dictionary<string, string> managerEmailAddresses = new Dictionary<string, string>();

using (searcher)
{
    results = searcher.FindAll();

    foreach (SearchResult result in results)
    {
        if (result.Properties["DirectReports"].Count > 0)
        {
            DirectoryEntry emp = result.GetDirectoryEntry();

            String mail = "";
            if (emp.Properties["mail"].Count > 0)
            {
                mail = emp.Properties["mail"][0].ToString();
                string userName;
                userName= mail.Split('@')[0];

                managerEmailAddresses.Add(userName, mail);
             }
         }
    }
    return managerEmailAddresses;
}
DirectorySearcher搜索器;
SearchResultCollection结果;
searcher=newdirectorysearcher();
searcher.Filter=“(&(objectClass=user)(objectCategory=person))”;
searcher.PropertiesToLoad.Add(“DirectReports”);
searcher.PropertiesToLoad.Add(“邮件”);
searcher.SearchRoot=实用程序域;
Dictionary ManagerMailAddresses=新字典();
使用(搜索器)
{
结果=searcher.FindAll();
foreach(搜索结果中的搜索结果)
{
if(result.Properties[“DirectReports”].Count>0)
{
DirectoryEntry emp=result.GetDirectoryEntry();
字符串mail=“”;
如果(emp.Properties[“邮件”]。计数>0)
{
mail=emp.Properties[“mail”][0].ToString();
字符串用户名;
用户名=mail.Split('@')[0];
添加(用户名、邮件);
}
}
}
返回manageremailaddress;
}