关于 c#:根据名字、姓氏和显示名在 Active Directory 中搜索用户

Search Users in Active Directory based on First Name, Last Name and Display Name

我试图在我的组织活动目录中搜索用户。

如果 FirstName 或 LastName 或 DisplayName 匹配特定的字符串值,它应该返回用户。

我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.GivenName ="Ramesh*";
// qbeUser.Surname ="Ramesh*";
// qbeUser.DisplayName="Ramesh*";    

PrincipalSearcher srch = new PrincipalSearcher(qbeUser);

// find all matches
foreach(var found in srch.FindAll())
{
    //
}

问题是我只能通过一个过滤器进行搜索。

我可以 AND 过滤器但不能 OR。是否有可用的解决方案?


在另一个 SO question 中查看此问题的可能解决方案。

您将需要使用 UserPrincipal 的可扩展性来创建一个后代类,以便访问 anr 属性(anr = 模糊名称解析),该属性允许一次搜索多个与名称相关的属性。


看看 DirectorySearcher。
这篇文章可能会有所帮助。