C# Active Directory-按多个属性搜索
我正在制作一个用Visual Studio 2013、ASP、C#设计的web程序 我正在寻找一种方法,能够搜索Active Directory以获取电子邮件地址,以便在生成报告时自动发送电子邮件。我的要求是根据个人的职位和所在地(如纽约、达拉斯等)获取电子邮件地址 我在考虑创建两个列表(一个用于TO:addresses,另一个用于CC:addresses)。我打算使用列表,因为收到电子邮件的人数因网站位置和报告类型而异 我的问题是我不知道如何设置搜索参数来填充这些列表。我所做的研究表明,我需要使用System.DirectoryServices创建DirectorySearcher 所有这些都将在“提交报告”按钮点击事件下完成。为您需要的创建一个: 然后搜索邮件地址:C# Active Directory-按多个属性搜索,c#,asp.net,search,active-directory,visual-studio-2013,C#,Asp.net,Search,Active Directory,Visual Studio 2013,我正在制作一个用Visual Studio 2013、ASP、C#设计的web程序 我正在寻找一种方法,能够搜索Active Directory以获取电子邮件地址,以便在生成报告时自动发送电子邮件。我的要求是根据个人的职位和所在地(如纽约、达拉斯等)获取电子邮件地址 我在考虑创建两个列表(一个用于TO:addresses,另一个用于CC:addresses)。我打算使用列表,因为收到电子邮件的人数因网站位置和报告类型而异 我的问题是我不知道如何设置搜索参数来填充这些列表。我所做的研究表明,我需要
List<string> list = GetMail(filter);
List List=GetMail(过滤器);
List GetMail(字符串搜索过滤器)
{
List MailAddresses=新列表();
使用(DirectorySearcher DirectorySearcher=new DirectorySearcher())
{
directorySearcher.Filter=SearchFilter;
SearchResultCollection resultCollection=directorySearcher.FindAll();
foreach(resultCollection中的SearchResult SearchResult)
{
尝试
{
MailAddresses.Add(searchResult.Properties[“mail”][0].ToString());
}
抓住{
//也许在这里填写一个错误列表。
}
}
}
返回邮件地址;
}
@Lankymart我不欣赏你在编辑原因中使用的语言或侮辱。请不要不尊重其他用户。@Lankymart-正如Chris所说,编辑的理由是完全不合适的。无论您对提问者有何看法,请在评论中保持礼貌,并在此处编辑建议。
List<string> list = GetMail(filter);
List<string> GetMail(string SearchFilter)
{
List<string> MailAddresses = new List<string>();
using (DirectorySearcher directorySearcher = new DirectorySearcher())
{
directorySearcher.Filter = SearchFilter;
SearchResultCollection resultCollection = directorySearcher.FindAll();
foreach (SearchResult searchResult in resultCollection)
{
try
{
MailAddresses.Add(searchResult.Properties["mail"][0].ToString());
}
catch {
//Maybe fill a list of errors here.
}
}
}
return MailAddresses;
}