2009-01-27 3 views
8

Ich verwende Python-ldap zu versuchen, gegen eine bestehende Active Directory zu authentifizieren, und wenn ich den folgenden Code verwenden:Was bedeutet das LDAP-Antworttupel (97, [])?

import ldap 
l = ldap.initialize('LDAP://example.com') 
m = l.simple_bind_s([email protected],password) 

ich folgendes zurück:

print m 
(97, []) 

Was die 97 tut und leere Liste bedeuten, von einem Microsoft Active Directory Server zu kommen?

Ich nehme an, dies ist eine erfolgreiche Authentifizierung, da es keinen Fehler (was es tut, wenn Sie das falsche Passwort oder nicht existent Benutzername verwenden), aber ich würde gerne wissen, ob das Tupel etwas Nützliches bedeutet.

Antwort

5

Nach dem documentation, ist dies:

LDAP_REFERRAL_LIMIT_EXCEEDED  0x61 The referral limit was exceeded. 

Wahrscheinlich

ldap.set_option(ldap.OPT_REFERRALS, 0) 

helfen könnte.

+0

Das hilft. Der LDAP-Standard gab an, dass 91-120 (ich glaube, das war der Bereich) "herstellerspezifisch" oder so ähnlich waren, und ich konnte die Microsoft-Seite, auf die Sie verwiesen haben, nicht finden. Ainabs Antwort ist auch nützlich. –

3

Das erste Element ist ein Statuscode (97 = Erfolg), gefolgt von einer Liste der Nachrichten vom Server. Siehe here im Abschnitt Bindung.

+0

Ihr Link ist eine Spam-Einbettung dieses Artikels: http://www.packtpub.com/article/installing-and-configuring-the-python-ldap-library-and-binding-to-an- ldap-directory – polm23

+0

@ polm23 - in Zukunft einfach eine vorgeschlagene Bearbeitung auf dem Post und erklären warum. – Kev