C# 如何查找有直接下属的人员,而不在Active Directory中显示直接下属?
我正在尝试查找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
有人能帮我吗?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;
}