2016-03-01 2 views
1

Я использую System.DirectoryServices.AccountManagement для управления учетной записью пользователя входа в систему.C# - Поиск прямых отчетов в активном каталоге

Я могу получить информацию для пользователя входа, но не могу получить идентификатор пользователя прямых отчетов на основе менеджера.

var context = new PrincipalContext(ContextType.Domain); 
var principal = UserPrincipal.FindByIdentity(context, User.Identity.Name); 

меня обратиться к этой ссылке: C# - Look up a users manager in active directory

Но до сих пор не получил никакого понятия. Кто-нибудь может помочь мне в этом?

ответ

0

Мне удалось выяснить свойство каталога для прямых отчетов («directReports»).

Просто, чтобы добавить новое свойство каталога, как показано ниже:

// Create the "Direct Report" property.  
    [DirectoryProperty("directReports")] 
    public List<string> DirectReports 
    { 
     get 
     { 
      var directReportsName = new List<string>(); 
      if (ExtensionGet("directReports").Length == 0) 
       return directReportsName; 

      for (int i = 0; i < ExtensionGet("directReports").Length; i++) 
      { 
       string userString = (string)ExtensionGet("directReports")[i]; 
       //example of userString = CN=name,OU=Users,OU=department,OU=AP,OU=Software,DC=company,DC=priv,DC=company,DC=com 
       //split by comma 
       var tempCN = userString.Split(',').First(); 
       var tempName = tempCN.Split('='); 
       var userName= tempName[1]; 

       directReportsAlias.Add(userName); 
      } 
      return directReportsName; 
     } 
    } 
Смежные вопросы