Abfrage von LDAP für Benutzergruppen

8

So erhalten Sie die Benutzergruppe des Benutzers aus dem aktiven LDAP-Verzeichnis in C # .NET für ASP. In meinem Szenario möchte ich den Benutzernamen an die Methode übergeben, die von LDAP Active Directory abfragt und mir mitteilen, dass mein Benutzer Mitglied dieser Benutzergruppen ist. Bitte helfen Sie mir in diesem

    
Arslan Pervaiz 09.03.2011, 21:01
quelle

6 Antworten

12

Wenn Sie .NET 3.5 oder neuer verwenden, können Sie auch die neuen System.DirectoryServices.AccountManagement (S.DS.AM) -Namespaces verwenden.

Damit können Sie Folgendes tun:

%Vor%

Lesen Sie mehr über den neuen S.DS.AM Namensraum:

Verwalten von Verzeichnissicherheitsprinzipalen in .NET Framework 3.5

    
marc_s 09.03.2011, 21:45
quelle
3

Sehen Sie sich den System.DirectoryServices -Namespace genauer an. Sie können einen DirectorySearcher verwenden, um den Benutzer zu finden. Sobald Sie das DirectoryEntry -Objekt für diesen Benutzer haben, machen Sie Folgendes:

%Vor%

Dies wird eine Liste von Strings zurückgeben, die die Gruppennamen sind, zu denen der Benutzer gehört.

Natürlich könnten Sie dies weiter verfeinern, um den DirectorySearcher-Code einzuschließen, so dass Sie einfach die Funktion samAccountName übergeben können.

    
Frank Hale 09.03.2011 21:08
quelle
3

versuche das ...

%Vor%     
piris 12.08.2011 13:50
quelle
2

Verwenden Sie die DirectorySearcher-Klasse zum Vorbereiten einer LDAP-Abfrage.

Als Referenz:

Ссылка

    
Brandon Moretz 09.03.2011 21:15
quelle
2

Ich benötigte eine Methode zur Authentifizierung eines Benutzers und eine Überprüfung, um festzustellen, ob sie sich in einer bestimmten Benutzergruppe befanden. Ich habe es getan, indem ich den Benutzernamen und das Passwort gedrückt und die Eigenschaft "memberOf" in die 'search' Instanz geladen habe. Im folgenden Beispiel werden alle Gruppen für diesen bestimmten Benutzernamen angezeigt. Die 'catch' Anweisung wird einen falschen Benutzernamen oder ein falsches Passwort enthalten.

%Vor%

Hoffe, das hilft. (Denken Sie daran, auf System.DirectoryServices zu verweisen)

    
Jon649 29.05.2015 09:44
quelle
0

Ich denke, die meisten oben aufgeführten Methoden sollten funktionieren, aber ich würde vorschlagen, Code hinzuzufügen, um sicherzustellen, dass Ihr Code "Kreisschleifen in verschachtelten Gruppenmitgliedschaften" erkennen kann, und wenn er gefunden wird, brechen Sie alle Endlosschleifen, die Ihr Skript der Wahl möglicherweise erhalten könnte in.

    
Nicolas 30.01.2013 07:33
quelle