2016-03-01 50 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; 
     } 
    }