Asynchroner DirectorySearcher (LDAP)

8

Ich führe eine lange Suche im aktiven Verzeichnis durch und möchte den DirectorySearcher wirklich verwenden. Asynchron = True. Microsoft bietet sehr wenig Dokumentation auf MSDN

  

Eine asynchrone Suche kann Ergebnisse anzeigen, während sie gefunden werden   gleichzeitig nach zusätzlichen Ergebnissen suchen. Dies ist nützlich für   Aufgaben wie das Füllen von Listenfeldern.

     

Die Standardeinstellung für diese Eigenschaft ist false.

Wie soll meine Anwendung wissen, wenn die Suche abgeschlossen ist? Ich sehe keine Eigenschaften, Ereignisse oder Rückrufe, die diese Benachrichtigung bereitstellen würden. Hat jemand eine Idee, wie man diese Funktionalität bekommt?

Grundsätzlich suche ich das:

  • Starten Sie die asynchrone Verzeichnissuche
  • Gibt Ergebnisse an eine System.Collections.Concurrent.ConcurrentQueue (Of Object)
  • zurück
  • Während DirectorySearcher ausgeführt wird, kann ich Objekte bearbeiten, die der Warteschlange hinzugefügt wurden

Vielen Dank für Ihre Hilfe.

    
Dakota K 08.11.2012, 22:21
quelle

1 Antwort

1

DirectoryServices verwendet ADSI, um mit AD zu kommunizieren. Wenn Sie async auf "true" setzen, wird die Suchpräferenz ADS_SEARCHPREF_ASYNCHRONOUS mithilfe von IDirectorySearch.SetSearchPreferences auf "true" gesetzt.

Auf dieser Seite werden die Unterschiede zwischen synchronen und asynchronen Suchvorgängen erläutert. Ссылка

Dies beschreibt das Paging. Ссылка

Wenn Sie eine große Abfrage durchführen, können Sie Ihren eigenen Thread erstellen oder den Thread-Pool verwenden, die Seitengröße auf etwas unter 1000 setzen und Ihre Warteschlange mit den Ergebnissen füllen.

    
AbdElRaheim 22.11.2012 02:27
quelle

Tags und Links