活动目录-按多个属性搜索

本文关键字:属性 搜索 活动 | 更新日期: 2023-09-27 18:01:27

我正在制作一个用Visual Studio 2013, ASP, c#设计的web程序。

我正在寻找一种方法,能够搜索活动目录获取电子邮件地址发送自动电子邮件时生成的报告。我的要求是根据他们的职位和位置(即纽约,达拉斯等)获得个人的电子邮件地址。

我正在考虑创建两个列表(一个用于收件人地址,另一个用于抄送地址)。我之所以要使用列表,是因为收到电子邮件的人数会根据网站位置和报告类型而有所不同。

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

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

活动目录-按多个属性搜索

为您需要的属性创建一个过滤器:

     string filter = @"(&(objectCategory=Person)(physicalDeliveryOfficeName=Dallas))";

然后搜索邮件地址:

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