J'ai du code qui interroge Active Directory pour vérifier l'existence de l'utilisateur. J'essaie de vérifier une longue liste d'environ 1300 ids. J'ai essayé plusieurs méthodes pour vérifier si un compte d'utilisateur (LINQ à AD, DirectorySearcher (avec et sans un parentEntry) et aussi un DirectoryEntry qui lie au chemin WinNT: //). Chaque fois qu'il reviendra et dire que plusieurs utilisateurs n'existent pas. Si je code en dur leurs userids dans le code et exécute pour individuellement, il valide l'existence. Si j'essaie de le faire dans une boucle foreach, j'ai plusieurs faux négatifs.Active Directory ne trouve pas tous les utilisateurs en C#
Voici le code que je utilise en ce moment ..
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);
}
Toutes les suggestions ou les raisons pour lesquelles je recevais les faux négatifs?