Python ldap返回空列表
我用Python ldap返回空列表,python,ldap,Python,Ldap,我用ldapsearch测试了我的ldap查询,然后将其重写到python的ldap模块中。同样的查询可以在ldapsearch中正常工作,但在python中返回一个空数组 ldapsearch -H [hostname] -LLL -b [base] -D [user] -w [password] -x "city=Bratislava" 在python中: ldap_obj = ldap.initialize(ldap_config.LDAP_SERVER) ldap_obj.simple
ldapsearch
测试了我的ldap查询,然后将其重写到python的ldap模块中。同样的查询可以在ldapsearch
中正常工作,但在python中返回一个空数组
ldapsearch -H [hostname] -LLL -b [base] -D [user] -w [password] -x "city=Bratislava"
在python中:
ldap_obj = ldap.initialize(ldap_config.LDAP_SERVER)
ldap_obj.simple_bind(ldap_config.LDAP_USER, ldap_config.LDAP_PASSWORD)
ldap_results_obj = ldap_obj.search(
ldap_config.LDAP_BASE_DN,
ldap.SCOPE_SUBTREE,
'city=Bratislava',
)
results = ldap_obj.result(ldap_results_obj)
print results
我尝试使用另一个过滤器,即
uid=bmakan
,这个过滤器在ldapsearch
和python的ldap中都有效。当我使用返回多个ldap实体的筛选器时,它只返回一个空列表。我不知道为什么,但使用了LDAPObject.simple\u bind\u s
而不是LDAPObject.simple\u bind
修复了我面临的问题。关于这两个函数的区别,文档中的描述相当模糊,只是后者返回一个整数()
此更改还修复了我面临的另一个问题-使用LDAPObject.simple\u bind
,LDAPObject.search
的attrlist
参数无法正常工作-它只返回了第一个属性
如果有人能提供更多的信息,我很乐意听听。有异步和同步方法可用。您可能希望使用以
\u s
结尾的同步方法
另见: