Я проверил два других потока и даже использовал код из одного, но он никогда не заполняет список. Когда я открываю 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);
}