首页 > 解决方案 > python - ldap3 lib:如何向属性添加多个值

问题描述

我想向 ldap 中的用户添加多个电子邮件地址。因此,当我使用 ldapsearch 搜索/查找特定用户时,一个名为 mailLocalAdress 的属性看起来像这样:

mailLocalAddress: abc@testing.com
mailLocalAddress: abcd@testing.com
mailLocalAddress: abcdefg@testing.com

我正在使用 python 3,ldap3 lib,这就是我定义 mailLocalAdress 属性值的方式

ldap_values['mailLocalAddress'] = [user.email_first, user.email_second, user.email_third]

这是添加命令

ldap_con.add(dn, object_class, ldap_values)

我在做 ldapsearch 时得到了这个结果

mailLocalAddress: ['abc@testing.com', 'abcd@testing.com', 'abcdefg@testing.com']

任何想法如何获得上面的列表?

标签: pythonpython-3.xldap

解决方案


这是一个完全不同的问题:

ldap_values = {k: str(v).encode("utf-8") for k,v in ldap_values.items()}

在添加值之前,我必须将它们转换为 UTF8。因此,我将字典中的每个值都转换为字符串,还有列表!当然,在这个“我的绝妙举动”之后,在将值添加到 ldap 时,列表会被视为字符串。我一直忽略这个单行。


推荐阅读