4
我已經檢查了其他兩個線程,甚至使用了一個代碼,但它永遠不會填充列表。當我打開Active Directory用戶和計算機並轉到組織下的我的經理時,我會看到他的直接報告列表。獲取當前用戶的直接報告列表
我想要做的是通過代碼訪問該列表。目前爲止我找不到的東西似乎有效。
public void GetDirectoryEntry(string adUserName)
{
DirectoryEntry de = new DirectoryEntry("LDAP://server.server.com");
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "(&((&(objectCategory=Person)(objectClass=User)))(samaccountname=" + adUserName + "))";
ds.SearchScope = SearchScope.Subtree;
SearchResult rs = ds.FindOne();
string distinguishedName = rs.Properties["distinguishedName"][0].ToString();
string department = rs.Properties["department"][0].ToString();
string manager = rs.Properties["manager"][0].ToString();
//string temp3 = rs.Properties["Reports"][0].ToString();
}
我一直在使用Reports
和directReports
既不工作都錯誤了嘗試。
此方法加載登錄的用戶或我傳入的任何用戶。我可以訪問他們的所有財產,但我似乎無法訪問他們的直接報告。
我錯過了什麼?
找到了答案:
foreach (string objProperty in rs.Properties["DirectReports"])
{
isManager = true;
string emp = objProperty.ToString();
string[] setp = new string[1];
setp[0] = "DC"; //If your users are in a OU use OU
emp = emp.Split(setp, StringSplitOptions.None)[0];
emp = emp.Replace("CN=", "");
emp = emp.TrimEnd(',');
emp = emp.Replace("\\, ", ", ");
emp = emp.Split(',')[0];
//emps.Add(emp);
}