python - 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']
任何想法如何获得上面的列表?
解决方案
这是一个完全不同的问题:
ldap_values = {k: str(v).encode("utf-8") for k,v in ldap_values.items()}
在添加值之前,我必须将它们转换为 UTF8。因此,我将字典中的每个值都转换为字符串,还有列表!当然,在这个“我的绝妙举动”之后,在将值添加到 ldap 时,列表会被视为字符串。我一直忽略这个单行。
推荐阅读
- jquery - 如何通过使用 SystemJS 作为模块加载器将 jquery 与 TypeScript 一起使用(ReferenceError:jQuery 未在 Object.execute 中定义)
- firebase - Firebase 身份验证在 1 小时后过期
- c - C:为什么会出现这种分段错误?
- c++ - Konfig32.exe 中 0x6D3800C8 处未处理的异常:使用 MS Detours 后出现 0xC000041D
- angular - 过滤分页外部 api 的所有页面中的数据
- amazon-web-services - 使用 cloudformation yaml 在 Lambda 函数上添加 S3 触发器
- google-apps-script - 在特定时间用于细胞保护的 Google 脚本
- sharepoint - SPFx - 通过主页上的代码配置 Web 部件会删除其他内容
- node.js - 从 Typescript 生成的导入 Node.js 模块的“默认”部分是什么?
- bash - 代理平衡。如何在 haproxy 检查器中找到最小值?