2016-05-13 31 views
4

私はCentOSのOpenLDAPでユーザーを作成しようとしているPythonのldap3でコーディングしています。 私のローカル開発マシンはWindows 8 64bitを実行しています。 以下は私のコードです。Python ldap3 LDAPSocketOpenErrorがメッセージを送信できません。ソケットが開かれていません。

from ldap3 import Server, Connection, ALL 

# define the server 
s = Server('ldap://ldap.abcd.com:389', get_info=ALL) 

# define the connection 
c = Connection(s, user='cn=Manager,dc=mydomain,dc=com', password='Super1') 

# perform the Add operation 
c.add('uid=user3,ou=People,dc=abcd,dc=com',['person','organizationalPerson','inetOrgPerson', 'posixGroup', 'top','shadowAccount'], {'givenName': 'user3firstname','sn': 'user3lastname', 'uidNumber' : 520,'gidNumber' : 521,'uid': 'user3','cn': 'user3user3lastname'}) 

# close the connection 
c.unbind() 

サーバーと接続クラスが正常に動作しています。私はその2つのステートメントだけを実行すると、それは以下のエラーを生成しなかったので、私は推測する。

LDAPSocketOpenError at /adminservice/users/ 
unable to send message, socket is not open 
Request Method: GET 
Request URL: http://127.0.0.1:8000/adminservice/users/ 
Django Version: 1.8.4 
Exception Type: LDAPSocketOpenError 
Exception Value:  
unable to send message, socket is not open 
Exception Location: C:\Python35\lib\site-packages\ldap3\strategy\base.py in send, line 299 
Python Executable: C:\Python35\python.exe 
Python Version: 3.5.1 
Python Path:  
['D:\\sourcecode\\idp', 
'D:\\sourcecode\\utils-drf-public-api', 
'C:\\Python26', 
'C:\\Python35\\python35.zip', 
'C:\\Python35\\DLLs', 
'C:\\Python35\\lib', 
'C:\\Python35', 
'C:\\Python35\\lib\\site-packages'] 
Server time: Fri, 13 May 2016 17:02:08 +0700 

enter image description here

答えて

6

あなたは、ユーザーを追加する前に、接続をバインドする必要があります。 add文の前にc.bind()を実行してみてください。

関連する問題