我正在SamAccountName
使用该对象在 Active Directory 中搜索特定值,PrincipalSearcher
因为我想返回UserPrincipal
's. 我想知道如何将两个过滤器应用于该搜索;一个是帐户名的开头以xx开头,另一个是它不以_c结尾。
目前我可以使用 xx 搜索所有以 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 过滤器。因此,如果有人知道如何在返回主体对象的同时实现这些,那将非常有帮助。