Active Directory:是否可以向SearchResultCollection添加项目

时间:2018-05-03 23:00:58

标签: c# active-directory

问题:是否可以向SearchResultCollection添加项目?或者是否有潜在的解决方法?

项目要求:获取所有对象和特定数据以及所有对象组成员(表示为GroupGuid和MemberGuid对)。

问题:我在程序中发现了一个竞争条件,该程序检索所有对象和一个对象的组成员。问题是如何最好地处理它?我能想到的最好的是获得两个SearchResultCollections(SRC)。

  1. srcObjects =获取所有对象
  2. srcGroups =获取仅限组的对象。
  3. 对于srcObjects中的所有对象,我可以检索我需要的所有属性,同时还将objectGUID和distinguishedName添加到字典中。我可以在srcGroups集合上运行一个循环,它将返回distinguishedNames。然后,在从字典中检索objectGUID时,我可以测试它是否存在。如果没有,则在程序运行时添加新对象(即竞争条件)。我想将新对象添加到srcObjects集合中。这应该可以解决竞争条件,同时还允许我检索新对象的属性。

    一旦检索了所有组成员,我就可以遍历srcObjects集合并确保srcGroups集合中的所有对象也在srcObjects集合中。

1 个答案:

答案 0 :(得分:1)

  

是否可以向SearchResultCollection添加项目?

简短的回答是否定的。 SearchResultCollection只实现ICollection,它不需要任何方法来添加项目,事实上,SearchResultCollection没有提供任何添加任何内容的方法。

唯一的解决方法是枚举集合并将每个项目转换为另一种类型的对象,并添加到该类型的List