Schnellere Möglichkeit herauszufinden, ob ein Benutzer auf einem System existiert?

7

Ich habe eine Anwendung, die bei jedem Start prüft, ob ein Benutzer vorhanden ist (wenn er nicht erstellt wird). Dies geschieht folgendermaßen:

%Vor%

Das Problem tritt bei der Mehrzahl der Systeme auf, auf denen es bereitgestellt wird. Dies kann 6 - 10 Sekunden dauern, was zu lang ist ... Ich muss einen Weg finden, dies zu reduzieren (so viel wie möglich). Gibt es eine Möglichkeit, besser oder schneller zu überprüfen, ob ein Benutzer auf dem System vorhanden ist oder nicht?

Ich weiß, dass es andere Wege gibt, das zu lösen, wie die anderen Anwendungen für 10 Sekunden schlafen oder dass dieses Tool eine Nachricht sendet, wenn es fertig ist, usw. Aber wenn ich die Zeit erheblich reduzieren kann finde den Benutzer, es würde mein Leben viel einfacher machen.

    
Shaitan00 04.11.2009, 18:43
quelle

4 Antworten

20

.NET unterstützt 3.5 AD Abfragen von Klassen im Namespace System.DirectoryServices.AccountManagement.

Um es zu verwenden, müssen Sie "System.DirectoryServices.AccountManagement" als Referenz hinzufügen und die using -Anweisung hinzufügen.

%Vor%

& lt; .NET 3.5

Für Versionen von .NET vor 3.5 ist hier ein sauberes Beispiel, das ich auf dotnet-snippets

%Vor%     
Michael La Voie 04.11.2009, 18:53
quelle
5

Sie möchten den DirectorySearcher verwenden.

In etwa so:

%Vor%

Das sollte schneller sein. Außerdem können Sie die Eigenschaften reduzieren, wenn Sie nur nach Existenz suchen.

    
Beached 04.11.2009 19:00
quelle
1

Der folgende Befehl in einer Eingabeaufforderung gibt 1 zurück, wenn 'username' existiert.

Netzbenutzer | Finde "Benutzername" / c

    
kenny 04.11.2009 18:53
quelle
0

Dies sollte es tun (wenn Sie System.DirectoryServices.AccountManagement nicht verwenden können):

%Vor%     
mhu 24.01.2014 10:12
quelle

Tags und Links