У меня есть код, который запрашивает Active Directory для проверки существования пользователя. Я пытаюсь проверить длинный список около 1300 идентификаторов. Я пробовал несколько способов проверить, есть ли учетная запись пользователя (LINQ to AD, DirectorySearcher (с родительским каталогом и без него), а также DirectoryEntry, которая ссылается на путь WinNT: //). Каждый раз, когда он вернется и скажет, что нескольких пользователей не существует. Если я жестко кодирую их идентификаторы пользователя в коде и выполняю их по отдельности, он проверяет существование. Если я попытаюсь сделать это в цикле foreach, я получаю несколько ложных негативов.Active Directory не находит всех пользователей в C#
Вот код, я использую прямо сейчас ..
static string[] userIDs = new string[] "user1","user2","user3","user4","user5","user6","user7","user8"...,"user1300"};
List<string> nonExistingUsers = new List<string>();
List<string> ExistingUsers = new List<string>();
foreach (string s in userIDs)
{
DirectorySearcher search = new DirectorySearcher();
search.Filter = String.Format("(SAMAccountName={0})", s);
search.PropertiesToLoad.Add("cn");
DirectorySearcher ds = new DirectorySearcher(de, "(&(objectClass=user)(cn=" + s + "))", new string[] { "Name" }, SearchScope.Subtree);
SearchResultCollection resultCollection = ds.FindAll();
SearchResult result = search.FindOne();
if (result != null)
ExistingUsers.Add(s);
else
nonExistingUsers.Add(s);
}
Любые предложения или причины, почему я получаю ложные негативы?