2011-07-13 36 views
6

有沒有辦法在python-LDAP中手動設置「simple_bind_s」的超時時間?我測試過ldapObject.timeout = 10它不適合我。有任何想法嗎?Python-LDAP simple_bind_s timeout

在此先感謝..

回答

10

設置LDAP對象中的選項ldap.OPT_NETWORK_TIMEOUT。如果達到指定的超時

import ldap 

l = ldap.initialize('ldap://servername:389') 
l.set_option(ldap.OPT_NETWORK_TIMEOUT, 10.0) 
l.simple_bind_s('username', 'password') 

這將引發ldap.SERVER_DOWN例外。

3

出於某種原因,ldap.OPT_NETWORK_TIMEOUT似乎永遠不會超時我,所以我用ldap.OPT_TIMEOUT代替(這將提高ldap.TIMEOUT):

import ldap 

l = ldap.initialize('ldaps://ldap.example.com') 
l.set_option(ldap.OPT_TIMEOUT, 10) 
l.simple_bind_s('username', 'password') 
+1

我可能是錯了,但我可以告訴,OPT_NETWORK_TIMEOUT之間的區別OPT_TIMEOUT是「網絡」選項用於初始連接:10秒內未能連接,引發異常。 OPT_TIMEOUT選項似乎適用於在LDAP服務器上執行的操作:嘗試創建新記錄並花費超過10秒鐘時間,引發異常。 – CptSupermrkt