我正在使用python2.7下的ldap3模块,并对我的目录进行搜索。我可以检索用户的cn:,但是如何正确地检索distinguishedName (特别是下面的DN: )?
>>> conn.search (BASE_DN, '(&(uid=user456))', attributes=['*'])
True
>>> print conn.entries[0]
DN: uid=user456,ou=myou,dc=myorg
cn: user456
...
>>> print conn.entries[0]['cn']
user456
>>> print conn.entries[0]['DN']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/ldap3/abstract/entry.py", line 100, in __getitem__
return self.__getattr__(item)
File "/usr/lib/python2.7/dist-packages/ldap3/abstract/entry.py", line 88, in __getattr__
raise LDAPKeyError('key not found')
ldap3.core.exceptions.LDAPKeyError: 'key not found'发布于 2019-08-09 16:06:15
python 3搜索的结果不仅是属性,而且是表单(dn, attributess, raw_attributes)的元组,其中:
dn:包含条目的DN (可分辨名称)的字符串attributes:返回属性及其值的字典。值是列表。值为UTF-8格式。raw_attributes:与“属性”相同,但未编码(字节数组)DN本身不是(DN的)属性.
因此,显示DN和CN的内容如下所示:
conn.search (BASE_DN, '(&(uid=user456))', attributes=['*'])
for dn,attrs,raw_attrs in conn.search.response:
print dn
print attrs['cn']发布于 2020-09-11 12:03:20
您可以从这样的条目中获得DN:
for entry in conn.entries:
print(entry.entry_dn)https://serverfault.com/questions/978634
复制相似问题