【发布时间】:2015-07-08 09:32:46
【问题描述】:
我想为已经存在的多值 LDAP 属性(特别是成员属性)添加一个值,并且我正在使用 Zend Framework 2 Zend/Ldap API。
通过使用->getEntry() 从 LAP 服务器获取实际值,使用 setAttribute() 修改结果数组并使用 ->update() 将数组写回 LDAP 服务器,所有 ZF2/Ldap 函数都可以轻松完成。
当然有但是:
如果我这样做,我可能会向 LDAP 服务器写入一个包含数千个条目的非常大的数组。特别是在将“成员”属性写入 GroupOfNames 对象时,这可能会触发(在我的情况下为 openldap 的)覆盖成员,并且它开始在所有这些数千个条目上工作(更新?索引?)。
就我而言,我碰巧运行超时。如果我禁用 openldap 服务器中的 memberof 覆盖,一切都很好。这可能是一个 openldap 错误或问题,但无论如何,经过这么长时间的前戏,这是我的问题:
基本的 php 有一个函数ldap_mod_add(),它只向现有属性添加一个值,不管已经有多少值。 CLI 的 ldapmodify 工作方式相同。这样我可能不会超载 memberof 覆盖。
我如何使用 Zend/Ldap API 做类似的事情?
Zend\Ldap\Attribute::setAttribute() 知道如何追加,但这仅适用于本地复制的数组。那么如何追加一个值直接到LDAP服务器条目?
【问题讨论】:
标签: php zend-framework ldap openldap