0

我正在尝试使用 Query by Example 从 Active Directory 中检索一组记录。此代码段将查找名称为“John Smith”的任何记录:

 PrincipalContext context = new PrincipalContext(ContextType.Domain, contextName);
 User filter = new User(context);
 var users = new List<User>();            
 filter.LastName = "Smith";
 filter.GivenName = "John";
 PrincipalSearchResult<Principal> matches = null;            
 PrincipalSearcher searcher = new PrincipalSearcher(filter);
 matches = searcher.FindAll() as PrincipalSearchResult<Principal>;

但我想应用这些过滤器,这样我就可以匹配姓氏为“Smith”给定名称为“John”的任何记录,例如“Mary Smith”、“John Brown”。这是否可以使用 Query by Example 来实现 - 无需运行多个搜索?我还没有找到任何记录在案的例子。

4

1 回答 1

2

您不能使用 QBE(按示例查询)进行任何类型的 OR 搜索。

可以使用所需的所有 OR 和 AND 编写 LDAP 查询,单独运行该查询,取回专有名称,然后查找所有匹配的 UserContext 对象……我知道,这很糟糕。

在组合 AccountManagement 结构时,有很多领域没有给予太多考虑。

于 2013-10-15T02:55:34.647 回答