Est-ce que GetDirectoryEntry de SearchResultCollection doivent interroger ActiveDirectory à nouveau? [DirectoryServices / .net]
-
16-09-2019 - |
Question
Lorsque vous utilisez la méthode FindAll () du DirectorySearcher en .net, la méthode ne GetDirectoryEntry () du SearchResultCollection nécessitent un autre voyage à Active Directory? .... par exemple
Dim src As SearchResultCollection
Dim ds As New DirectorySearcher
' code to setup DirectorySearcher
' go to Active Directory and fill collection with results
src = ds.FindAll()
'...later on in code or whatever
' does the next line of code require another trip to Active Directory?
Dim de As DirectoryEntry = src.item(0).GetDirectoryEntry()
La solution
D'après la documentation qu'il actualisez AD pour obtenir l'entrée du répertoire.
Utilisez GetDirectoryEntry quand vous voulez regarder en direct l'entrée au lieu du entrée qui a été retourné par DirectorySearcher, ou quand vous voulez invoquer un procédé sur l'objet qui a été retour.
Note: Appel GetDirectoryEntry sur chaque SearchResult retourné par DirectorySearcher peut être lent.
Autres conseils
Oui, il va revenir à AD et obtenir l'ensemble de l'objet DirectoryEntry.
Si vous voulez éviter cela (et vous devriez, lorsque cela est possible), spécifiez les propriétés que vous avez vraiment besoin sur votre DirectorySearcher
en utilisant la collection PropertiesToLoad
, puis inspecter le SearchResult.Properties
pour ces valeurs - celles-ci seront retournés avec la recherche et de faire pas besoin d'un autre aller-retour à l'active Directory.
Marc