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

时间:2013-08-30 15:30:31

标签: c# active-directory userprincipal principalcontext principalsearcher

我尝试为用户搜索我的组织Active Directory。

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

我的代码:

// 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。是否有任何解决方案?

2 个答案:

答案 0 :(得分:2)

See a possible solution for this issue in this other SO question

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

答案 1 :(得分:0)

查看DirectorySearcher。 This article可能有帮助。