Должен ли SearchResultCollection GetDirectoryEntry снова запрашивать ActiveDirectory? [DirectoryServices / .net] - PullRequest
1 голос
/ 16 июля 2009

При использовании метода FindAll () DirectorySearcher в .net, требует ли метод GetDirectoryEntry () SearchResultCollection повторное посещение Active Directory?например ...

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()

Ответы [ 2 ]

1 голос
/ 16 июля 2009

В соответствии с документацией AD запросит запись каталога.

Ссылка

Используйте GetDirectoryEntry, когда вы хотите посмотрите на живую запись вместо запись, которая была возвращена через DirectorySearcher, или когда вы хотите вызвать метод для объекта, который был вернулся.

Примечание: Вызов GetDirectoryEntry для каждого SearchResult, возвращаемого через DirectorySearcher, может быть медленным.

0 голосов
/ 16 июля 2009

Да, он вернется в AD и получит весь объект DirectoryEntry.

Если вы хотите избежать этого (и вам следует, когда это возможно), укажите те свойства, которые вам действительно нужны для DirectorySearcher, с помощью коллекции PropertiesToLoad, а затем проверьте SearchResult.Properties на наличие этих значений - они вернулся с поиском и не требует еще одного туда и обратно в Active Directory.

Марк

...