Die Benutzerdetails von AD werden langsam abgerufen

8

Ich verwende den folgenden Code, um eine Reihe von Informationen über Mitarbeiter aus bestimmten Abteilungen zu erhalten und eine Liste von AD zurückzuliefern ...

Während es funktioniert, scheint es ziemlich langsam zu sein, gibt es eine effizientere Möglichkeit, verschiedene Benutzerdetails von AD zu bekommen?

%Vor%     
raklos 31.10.2011, 15:01
quelle

2 Antworten

10

Ihr Problem ist, dass Sie System.DirectoryServices.AccountManagement verwenden ... Obwohl ich es hasse, es zu sagen, ist es leider die Wahrheit. Die Funktionsweise von AccountManagement besteht darin, dass eine separate LDAP-Abfrage ausgeführt wird, um jedes Element einzeln abzurufen. Wenn Sie also über Mitglieder iterieren, wird für jedes Mitglied ein separater Rückruf über LDAP ausgeführt. Stattdessen möchten Sie eine LDAP-Abfrage mit System.DirectoryServices.DirectorySearcher ausführen.

Ich gehe davon aus, dass Abteilung eine Gruppe ist, basierend darauf, wie Sie sie verwenden. Hier ist, wie ich es machen würde. (mein Code ist in VB.Net ... tut mir leid). Stellen Sie sicher, dass Sie den vollständig qualifizierten DN für Ihre Gruppe erhalten, oder suchen Sie ihn im Voraus und schließen Sie ihn an die Abfrage an.

%Vor%     
Peter 01.11.2011, 13:27
quelle
0

Sie sollten die Active Directory-API direkt verwenden können.

Das meiste davon steht unter 'System.DirectoryServices'

zur Verfügung

Ich habe keinen Code zur Hand, um genau das zu tun, was Sie brauchen, aber ich habe einen Artikel über mein Blog von vor einem Jahr, der zeigt, wie man lokale Benutzerkonten in AD erstellt, die alle die gleiche Baugruppen wie benötigt, um Benutzerinformationen zu erhalten.

Ссылка

HINWEIS: AD ist jedoch sehr langsam, daher besteht eine gute Chance, dass Sie nicht schneller werden, wenn Sie ein großes Verzeichnis haben.

    
shawty 31.10.2011 20:07
quelle

Tags und Links