Ich arbeite an einer .NET-Anwendung, die in C # und WPF geschrieben wurde. In dieser Anwendung werden wir die Benutzer gegenüber einem Server Active Directory authentifizieren. Am Ende könnten wir andere LDAP Implementierungen zu unterstützen, so dass, wenn ich diese ActiveDirectory- spezifisch, ohne aufbauen kann das würde ein Vorteil sein.
Was ist der beste Ansatz, um damit anzufangen? Gibt es irgendwelche guten Ressourcen, die ich überprüfen sollte? Ich habe gehört, dass es in .NET eine Bibliothek für die Kommunikation mit Active Directory gibt - oder gibt es eine allgemeine LDAP-Bibliothek? Jeder Rat wird geschätzt!
Hinweis: Ich verwende .NET 3.5.
.NET 3.5 hat diese enorm einfacher, als es durch Hinzufügen der System verwendet werden. DirectoryServices.AccountManagement -Namespace. Sofern Sie nicht auf .NET 3.5 sind, würde ich direkt in diesen Namespace gehen. Wie üblich hat Der Code Project etwas, das viele Anwendungsbeispiele zeigt .
Einfachheit Beispiel, einen Benutzer authentifizieren:
%Vor%Ich würde vermeiden, wenn möglich das System.DirectoryServices.AccountManagement zu verwenden. Es scheint sicherlich die Dinge einfacher zu machen, aber ich hatte zahlreiche Probleme damit (wie es gelegentlich einen bestimmten Port ignoriert) und es ist wirklich nur ein leichter Wrapper um System.DirectoryServices. Obwohl Sie mit anderen LDAP-Verzeichnissen damit vielleicht Glück haben, war es sicherlich nicht dafür ausgelegt.
Ich würde die System.DirectoryServices.Protocols Assembly empfehlen. Es ist ein bisschen schwieriger zu beginnen und erfordert auch ein wenig mehr Aufwand, aber Sie werden feststellen, dass es viel flexibler mit einer besseren Leistung und es ist weit mehr Standards-konform. Ich hatte großen Erfolg mit der Verwendung gegen eine Reihe von verschiedenen Verzeichnissen, einschließlich AD.
MSDN hat einen fantastischen Einführungsartikel , der die meisten Szenarien abdeckt, die Sie wahrscheinlich erwarten erfordern.
Wenn Sie auf .NET 3.5 sind, sollten Sie unbedingt den Namensraum System.DirectoryServices.AccountManagement
ausprobieren - das hat die Dinge viel einfacher gemacht als vorher!
Lesen Sie auch diesen MSDN-Artikel Verwalten von Verzeichnissicherheitsprinzipalen in .NET Framework 3.5 das Thema - sehr empfehlenswert!
Wenn Sie "generisch" bleiben und andere LDAP-Verzeichnisse unterstützen müssen, sollten Sie sich auch Einführung in System.DirectoryServices.Protocol , das ist die Microsoft .NET-Assembly und der Namespace, der sich mit LDAP-Aufrufen auf niedrigerer Ebene befasst und gegen jedes LDAP-kompatible Verzeichnis (Sun, Novell usw.) arbeiten sollte
Sie müssen mit System.DirectoryServices
assembly gehen. Hier einige Beispiele: Abfragen von Active Directory mit .NET-Klassen und LDAP-Abfragen
Sie können mein OSS-Projekt, das auf dem ActiveRecord-Muster basiert, wie folgt referenzieren: Da es Open Source ist, können Sie das AD mit DirectoryEntry bedienen, DirectoryEntry unterstützt nicht nur das LDAP-Protokoll, sondern auch IIS, WIN und so weiter , so entwickle ich diese lib):
%Vor%Und Sie werden es leicht finden, das AD damit zu betreiben, wenn Sie kein Interesse daran haben, ignorieren Sie bitte meine Antwort. Irgendwelche Fragen zu AD kontaktieren Sie mich bitte:)
Tags und Links .net c# authentication active-directory ldap