Est-ce que GetDirectoryEntry de SearchResultCollection doivent interroger ActiveDirectory à nouveau? [DirectoryServices / .net]

StackOverflow https://stackoverflow.com/questions/1135155

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()
Était-ce utile?

La solution

D'après la documentation qu'il actualisez AD pour obtenir l'entrée du répertoire.

Référence

  

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top