C# Active Directory-按多个属性搜索

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)。我打算使用列表,因为收到电子邮件的人数因网站位置和报告类型而异 我的问题是我不知道如何设置搜索参数来填充这些列表。我所做的研究表明,我需要

我正在制作一个用Visual Studio 2013、ASP、C#设计的web程序

我正在寻找一种方法,能够搜索Active Directory以获取电子邮件地址,以便在生成报告时自动发送电子邮件。我的要求是根据个人的职位和所在地(如纽约、达拉斯等)获取电子邮件地址

我在考虑创建两个列表(一个用于TO:addresses,另一个用于CC:addresses)。我打算使用列表,因为收到电子邮件的人数因网站位置和报告类型而异

我的问题是我不知道如何设置搜索参数来填充这些列表。我所做的研究表明,我需要使用System.DirectoryServices创建DirectorySearcher

所有这些都将在“提交报告”按钮点击事件下完成。

为您需要的创建一个:

然后搜索邮件地址:

     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;
  }