我在Active Directory中搜索使用PrincipalSearcher
对象的特定SamAccountName
值,因为我想返回UserPrincipal
's。我想知道如何将两个过滤器应用于该搜索;一个是帐户名称的开始以xx开头,另一个是不以_c结尾。使用PrincipalSearcher进行复杂搜索过滤
目前我可以使用xx*
搜索以xx开头的所有结果,但我无法弄清楚如何添加另一个搜索词或者甚至不适用搜索词。这是我目前的工作。
protected override void RunTests()
{
using (PrincipalContext context = new PrincipalContext(ContextType.Domain, "NAME", "OU=OUName",OU=name,DC=name,DC=net"))
{
UserPrincipal searchTemplate = new UserPrincipal(context);
searchTemplate.Enabled = true;
searchTemplate.SamAccountName = "xx*";
PrincipalSearcher search = new PrincipalSearcher(searchTemplate);
var principals = search.FindAll();
int total = principals.Count();
int numInvalidUsers = RunChecks(principals, new Check[]{
Check1
, Check2
, Check3
});
Score = numInvalidUsers == 0 ? 1 : 0;
}
}
我在想什么是我需要另一个参数添加到searchTemplate.SamAccountName
,我只是不知道如何。
更新: 我是说有人在Reddit谁是给我一些有用的建议,但该用户已经黑了。似乎最常见的建议是以某种方式实现LDAP过滤器。所以如果有人知道如何实现这些,同时仍然返回主要对象,这将是非常有用的。