2016-11-17 48 views
0

我有以下功能,但我无法获取电子邮件和其他电话号码等内容。我能做些什么来获得?从Active Directory结果中获取电子邮件

public static List<AdEmployees> CreateEmployeeList(string department) 
    { 
     List<AdEmployees> employees = new List<AdEmployees>(); 

     PrincipalContext pricipalContext = new PrincipalContext(ContextType.Domain); 
     GroupPrincipal group = GroupPrincipal.FindByIdentity(pricipalContext, department); 

     if (group != null) 
     { 
      foreach (Principal principal in group.Members) 
      { 
       employees.Add(new AdEmployees() { name = principal.Name }); 
      } 
     } 
     return employees; 
    } 

串部门是广告在给定组(可能是“来宾”或“管理员”或者别的什么)

+0

这可能是有用的:https://anyrest.wordpress.com/2010/10/14/how-to-use-ad-attributes-not-represented-in-userprincipal-groupprincipal -and-computerprincipal / – Asnivor

回答

0

试试这个:

PrincipalContext pricipalContext = new PrincipalContext(ContextType.Domain); 
     GroupPrincipal group = GroupPrincipal.FindByIdentity(pricipalContext, department); 

     if (group != null) 
     { 
      foreach (Principal principal in group.Members) 
      { 
       UserPrincipal user = UserPrincipal.FindByIdentity(pricipalContext, principal.Name); 
       employees.Add(new AdEmployees() { name = user.Name }); 
      } 
     } 

一些广告对象,如“办公室”没有找到这种方式。那么你可以尝试

UserPrincipal tu = principal as UserPrincipal; 
DirectoryEntry de = tu.GetUnderlyingObject() as DirectoryEntry; 
var store = de.InvokeGet("physicalDeliveryOfficeName").ToString() 
相关问题