Ich versuche, Microsoft DirectorySearcher in meiner Anwendung zu ersetzen, hauptsächlich weil es in unserem Anwendungsfall wirklich langsam ist (wenn ich nach einem einzelnen Benutzerkonto suche, um seinen givenName, sn und objectGUID verwendet den sAMAccountName als Filter, es dauert etwa 400 ms pro Benutzer, in einigen Fällen muss ich es für viele Benutzer bekommen)..NET-LDAP-Bibliotheken mit NTLM-Unterstützung
So versuchte ich Novell LDAP, sowohl die ursprüngliche Version als auch die .NET Standard. Leistung für das Original ist gut, aber .NET Standard ist noch besser. Der gleiche Fall, in dem Microsoft 400ms benötigt, dauert 3ms. So weit, ist es gut.
Um schnell zu diesem Punkt zu gelangen, habe ich meine Domain-Anmeldedaten fest programmiert. Jetzt, da ich versuche, die Implementierung von Microsoft in unserer Anwendung zu ersetzen, wurde mir klar, dass wir die NTLM-Authentifizierung verwenden, und ich möchte, dass diese Änderung für meine Benutzer transparent ist (sie müssen sie nicht nach ihren Domänenanmeldeinformationen fragen).
Mit Blick auf die Protokolldetails, LDAP-Aufrufe mit Wireshark und Novells Quellcode erkannte ich schnell, dass es etwas ist, das sie nicht implementiert haben. Also, ich bin wieder auf Platz eins ...
Ich brauche eine schnelle LDAP-Bibliothek, die NTLM (sasl gss-spnego) authentifizieren (binden) kann.
Gibt es so etwas? Ich habe nuGet gesucht und google gefragt, aber nicht viel gefunden.
Danke!
In meiner Erfahrung ist DirectorySearcher die schnellste Option. Verwenden Sie [die Überladung, mit der Sie einschränken können, welche Eigenschaften geladen werden] (https://msdn.microsoft.com/en-us/library/1z8b03h0 (v = vs.110) .aspx)? Ich habe bemerkt, dass das einen wesentlichen Unterschied machen kann. – itsme86
Ja, ich habe nur die Eigenschaften geladen, die ich brauchte. Mein Problem endete mit der Verhandlung zwischen meinem Client und meinem Test Domain Controller/Active Directory. Jemand schlug vor, dass ich die gleichen Anmeldeinformationen von meiner echten Domäne auf meiner Testdomäne verwende, um zu vermeiden, dass ich mich wirklich anmelden muss ... und das war ein Fehler und war die Ursache für die Verlangsamung der NTLM-Authentifizierung. Ich konnte dieses Problem nicht replizieren, wenn es ordnungsgemäß in unserer Produktionsdomäne/activedirectory protokolliert wurde. In diesem Fall gab es keinen merklichen Unterschied zwischen einfacher Authentifizierung und NTLM. –