Я ищу в Active Directory значения SamAccountName
с использованием объекта PrincipalSearcher
, потому что хочу вернуть UserPrincipal
. Мне было интересно, как я могу применить два фильтра к этому поиску; один из которых начинается с имени учетной записи, начинается с 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
, я просто не знаю, как.
Update: Я разговаривал с кем-то на Reddit который дает мне некоторые полезные предложения, но этот пользователь потемнели. Похоже, наиболее распространенное предложение - каким-то образом реализовать фильтры LDAP. Поэтому, если кто-то знает, как реализовать те, которые все еще возвращают основные объекты, которые будут очень полезны.