我正在尝试获取与给定AD用户关联的所有电子邮件地址。
对于用户,我有域名和登录名(例如DOMAIN \ UserName),而AD则将电子邮件地址存储在:
proxyAddresses
属性中。到目前为止,我不知道用什么C#API连接到AD,以及如何正确地过滤用户来获取所有电子邮件地址。我正在使用.NET 3.5。
谢谢。
答案 0 :(得分:32)
这是使用System.DirectoryServices
命名空间中的各种类的可能解决方案。
string username = "username";
string domain = "domain";
List<string> emailAddresses = new List<string>();
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());
}
答案 1 :(得分:-1)
您是否查看过DirectoryEntry类? 在设置了LDAP字符串的情况下,您可以从那里提取属性。邮件的邮件是“邮件”讽刺的吗?