我正在实现一个Django应用程序,我正在尝试从LDAP服务器获取数据。 这是我在views.py中的代码。我已经提供了下面的所有必要信息,但我面临着(2,'没有这样的文件或目录')错误。我在这里失踪了什么?
LDAP_USERNAME = ""
LDAP_PASSWORD = ""
LDAP_BASEDN = ""
try:
l = ldap.initialize('')
l.protocol_version = ldap.VERSION2
l.simple_bind_s(LDAP_USERNAME, LDAP_PASSWORD)
search_filter = "(cn=*)"
search_attribute = None
search_scope = ldap.SCOPE_SUBTREE
ldap_result_id = l.search(LDAP_BASEDN, search_scope, search_filter, search_attribute)
result_set = []
while 1:
result_type, result_data = l.result(ldap_result_id, 0)
if (result_data == []):
break
else:
if result_type == ldap.RES_SEARCH_ENTRY:
result_set.append(result_data)
print result_set
except ldap.LDAPError, e:
print e
错误追溯:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/core/handlers/exception.py", line 41, in inner
response = get_response(request)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Python/2.7/site-packages/Django-1.11.2-py2.7.egg/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/////views.py", line 43, in index
l = ldap.initialize('xyz')
File "/Library/Python/2.7/site-packages/ldap/functions.py", line 94, in initialize
return LDAPObject(uri,trace_level,trace_file,trace_stack_limit)
File "/Library/Python/2.7/site-packages/ldap/ldapobject.py", line 79, in __init__
self._l = ldap.functions._ldap_function_call(ldap._ldap_module_lock,_ldap.initialize,uri)
File "/Library/Python/2.7/site-packages/ldap/functions.py", line 66, in _ldap_function_call
result = func(*args,**kwargs)
LDAPError: (2, 'No such file or directory')
答案 0 :(得分:0)
ldap.initialize()
需要LDAP源的正确URL。我有同样的问题,LDAPError: (0, 'Error') and LDAPError: (2, 'No such file or directory') with flask帮了我。
试试ldap.initialize(<protocol>://<host>:<port>)
。默认protocol
为ldap
,默认端口为389
。