在ActiveDirectory中查找用户通过电子邮件地址 [英] lookup user in ActiveDirectory by email address
本文介绍了在ActiveDirectory中查找用户通过电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何查询通过电子邮件地址的用户的ActiveDirectory?一个给定的用户可以拥有多个电子邮件地址等均有john.smite@acme.com和jsmith@acme.com。对于给定的电子邮件,我怎样才能拿回A / D用户?
How can I query an ActiveDirectory user by email address? A given user can have multiple emails such as both john.smite@acme.com and jsmith@acme.com. For a given email, how can I get back the A/D user?
我在C#编程。
推荐答案
您可以用下面的代码搜索你的AD:
You can search your AD with following code:
DirectoryEntry adEntry = null;
private void SetADInfoAndCredentials()
{
adEntry = new DirectoryEntry("LDAP://" + ad_textBox.Text);
adEntry.Username = user_textBox.Text;
adEntry.Password = pw_textBox.Text;
}
private void SearchForMailInAD()
{
DirectorySearcher adSearcher = new DirectorySearcher(adEntry);
adSearcher.Filter = ("mail=" + mail_textBox.Text);
SearchResultCollection coll = adSearcher.FindAll();
foreach (SearchResult item in coll)
{
foundUsers_listBox.Items.Add(item.GetDirectoryEntry());
}
}
€:这将搜索的proxyAddresses的邮件地址它承载的所有邮件地址
€: This will search for the mail address in proxyAddresses which hosts all mail addresses
public static SearchResultCollection FindAccountByEmail(string pEmailAddress)
{
string filter = string.Format("(proxyaddresses=SMTP:{0})", email);
using (DirectoryEntry gc = new DirectoryEntry("LDAP:"))
{
foreach (DirectoryEntry z in gc.Children)
{
using (DirectoryEntry root = z)
{
using (DirectorySearcher searcher = new DirectorySearcher(root, filter, new string[] { "proxyAddresses", "objectGuid", "displayName", "distinguishedName" }))
{
searcher.ReferralChasing = ReferralChasingOption.All;
SearchResultCollection result = searcher.FindAll();
return result;
}
}
}
}
return null;
}
这篇关于在ActiveDirectory中查找用户通过电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文