gpt4 book ai didi

c# - 使用 PrincipalSearcher 查找参数为 "or"的用户

转载 作者:IT王子 更新时间:2023-10-29 04:25:04 25 4
gpt4 key购买 nike

是否可以使用 System.DirectoryServices.AccountManagement.PrincipalSearcher 使用“或”(而不是“和”)基于多个参数进行搜索。

// This uses an and
//(&(objectCategory=person)(!UserAccountControl:1.2.840.113556.1.4.803:=2)(&(SAMAccountName=tom*)(DisplayName=tom*)))
var searchPrinciple = new UserPrincipal(context);
searchPrinciple.DisplayName = "tom*";
searchPrinciple.SamAccountName = "tom*";

var searcher = new PrincipalSearcher();
searcher.QueryFilter = searchPrinciple;

var results = searcher.FindAll();

我想使用 PrincipalSearcher(不是 DirectorySearcher)进行类似的搜索(在 LDAP 中)

// (&(objectCategory=person)(!UserAccountControl:1.2.840.113556.1.4.803:=2)(|(SAMAccountName=tom*)(DisplayName=tom*)))

最佳答案

这显然是不可能的,这里有一个解决方法:

List<UserPrincipal> searchPrinciples = new List<UserPrincipal>();
searchPrinciples.Add(new UserPrincipal(context) { DisplayName="tom*"});
searchPrinciples.Add(new UserPrincipal(context) { SamAccountName = "tom*" });
searchPrinciples.Add(new UserPrincipal(context) { MiddleName = "tom*" });
searchPrinciples.Add(new UserPrincipal(context) { GivenName = "tom*" });

List<Principal> results = new List<Principal>();
var searcher = new PrincipalSearcher();
foreach (var item in searchPrinciples)
{
searcher = new PrincipalSearcher(item);
results.AddRange(searcher.FindAll());
}

关于c# - 使用 PrincipalSearcher 查找参数为 "or"的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10606334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com