C# – 查找Active Directory用户的所有电子邮件地址

我正在尝试获取与给定AD用户关联的所有电子邮件地址。

对于用户,我有域名和登录名(例如DOMAIN \ UserName),而AD则将电子邮件地址存储在:

  1. 邮件属性。
  2. proxyAddresses属性中。

到目前为止,我不知道用于连接AD的C#API,以及如何正确地过滤用户以获取所有电子邮件地址。 我正在使用.NET 3.5。

谢谢。

这是使用System.DirectoryServices命名空间中的各种类的可能解决方案。

 string username = "username"; string domain = "domain"; List emailAddresses = new List(); PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, domain); UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, username); // Add the "mail" entry emailAddresses.Add(user.EmailAddress); // Add the "proxyaddresses" entries. PropertyCollection properties = ((DirectoryEntry)user.GetUnderlyingObject()).Properties; foreach (object property in properties["proxyaddresses"]) { emailAddresses.Add(property.ToString()); } 

你看过DirectoryEntry类了吗? 在设置了LDAP字符串的情况下,您可以从那里提取属性。 邮件的邮件是“邮件”讽刺不是吗?