如何将LDAP属性设置为NULL

时间:2017-10-06 09:24:59

标签: php active-directory ldap

我正在使用PHP LDAP库来访问Microsofts Active Directory,我正在寻找一种清空方法来清空单值属性。

我正在使用ldap_modify(http://php.net/manual/de/function.ldap-modify.php)来更新活动目录联系人。不幸的是,当我尝试写一个空字符串时,我从ldap库收到语法错误('')。当我尝试覆盖单个值contacts属性而没有新属性时会发生这种情况。

有没有一种干净的方法来删除单个值的ldap属性?我现在唯一的解决方案是写'' ' (单一空间),但我觉得这可能会导致其他问题。

顺便说一下,清理多值属性很简单。 LDAP允许插入空数组(array())。

非常感谢您的支持。

1 个答案:

答案 0 :(得分:1)

我找到了清空活动目录属性的好方法。

对于多值和单值属性,使用ldap_modify提交空数组会清空该属性。

$entry = array();
$entry["member"] = array();
ldap_modify($link, $dn, $entry);

为什么我首先感到困惑:但是不允许通过ldap_add()提交一个空数组。我对ldap_modify和ldap_add操作使用了相同的映射函数,并且我尝试通过ldap_add提交空属性时出错。这是不允许的。

很高兴知道:即使此属性已为空或尚未设置,也允许通过ldap_modify提交一个空数组。