根据名字、姓氏和显示名在Active Directory中搜索用户

本文关键字:Active Directory 搜索 用户 显示 | 更新日期: 2023-09-27 18:29:36

我试图在我的组织Active directory中搜索用户。

如果FirstNameLastNameDisplayName与特定字符串值匹配,则应返回用户。

我的代码:

// 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运算。是否有可用的解决方案?

根据名字、姓氏和显示名在Active Directory中搜索用户

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

您需要使用UserPrincipal的可扩展性来创建子类,以便访问anr属性(anr=不明确的名称解析),该属性允许同时搜索多个与名称相关的属性。

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