我正在尝试查找活动目录中有人向他们报告的所有用户,但我找不到任何代码示例,这些示例允许我在搜索中排除没有任何直接报告的人。
有人可以帮我这个吗? LDAP完全让我困惑。
答案 0 :(得分:1)
以下是我如何解决类似问题的示例。我希望这会有所帮助。
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;
}
答案 1 :(得分:0)
你试过这样的过滤器吗? (&(objectCategory=person)(objectClass=user)(directReports=*))
?