在.net中使用DirectorySearcher的FindAll()方法时,SearchResultCollection的GetDirectoryEntry()方法是否需要另一次访问Active Directory? e.g ....
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()
答案 0 :(得分:1)
根据文档,它将重新查询AD以获取目录条目。
如果需要,请使用GetDirectoryEntry 看看现场参赛作品而不是 通过返回的条目 DirectorySearcher,或者您想要的时候 在对象上调用一个方法 返回。
注意: 在通过DirectorySearcher返回的每个SearchResult上调用GetDirectoryEntry可能会很慢。
答案 1 :(得分:0)
是的,它将返回AD并获取整个DirectoryEntry对象。
如果您想避免这种情况(并且您应该尽可能地避免),请使用DirectorySearcher
集合在PropertiesToLoad
上指定您真正需要的属性,然后检查SearchResult.Properties
这些值 - 将在搜索时返回,并且不需要再往返Active Directory。
马克