我正在尝试使用“按示例查询”从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”,例如“玛丽史密斯”,“约翰布朗”。这可以使用Query by Example - 而不必运行多个搜索吗?我找不到任何记录在案的例子。
答案 0 :(得分:2)
您不能使用QBE进行任何类型的OR搜索(按示例查询)。
您可以编写一个包含所需OR和AND的LDAP查询,单独运行该查询,获取可分辨名称,然后查找所有匹配的UserContext对象...我知道,它很糟糕。
在将AccountManagement结构放在一起时,有很多方面没有给予太多考虑。