如何解决search_s
我看了一些例子和回应,但是我很困惑。几分钟前就可以了,现在却没有返回结果。没有代码更改。
我拥有的测试代码从LDAP角色组中提取成员,并打印成员DN。几分钟前它已经起作用,现在它一直返回空结果。我还打印了ldap_result
,它也为空。
def ldapgroupmembers():
try:
username = str(raw_input('Email: '))
password = str(getpass.getpass())
l = ldap.initialize("ldap://company.co.za")
l.simple_bind_s(username,password)
myfilter = "(&DN=GROUP)(cn=My-RG-Group))"
ldap_result = l.search_s("OU=MyGroups,OU=Role Groups,OU=Groups,OU=CompanyOU,DC=company,DC=co,DC=za",ldap.SCOPE_SUBTREE,myfilter,['member'])
for dn in ldap_result[0][1]['member']:
print dn
except ldap.INVALID_CREDENTIALS:
print "Invalid credentials"
return "Invalid credentials"
except ldap.SERVER_DOWN:
print "Server down"
return "Server down"
except ldap.LDAPError,e:
if type(e.message) == dict and e.message.has_key('desc'):
return "Other LDAP error: " + e.message['desc']
else:
print "Other LDAP error: "
return "Other LDAP error: " + e
finally:
l.unbind_s()
return "Succesfully authenticated"
非常感谢您的帮助。
解决方法
我发现了问题。事实证明,我从未关闭过myfilter
括号,而是删除了在dn=GROUP
上进行过滤的第一个括号集
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。