如何将LDAP属性设置为NULL

问题描述:

我正在使用PHP LDAP库访问Microsofts Active Directory,并且正在寻找一种干净的方法来清空单个值属性。如何将LDAP属性设置为NULL

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

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

清理多值属性很简单。 LDAP确实允许插入空数组(array())。

非常感谢您的支持。

+2

你自己说过。您想要删除属性值,而不是将其设置为空。 – EJP

+0

感谢您的回复。因此,我不应该通过一个值(空字符串),而是通过ldap_modify为单值属性传递一个空数组? – Andre

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

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

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

为什么我很困惑摆在首位:不允许然而,通过ldap_add提交一个空数组()。我对ldap_modify和ldap_add操作都使用了相同的映射函数,并且尝试通过ldap_add提交空属性时出现错误。这是不允许的。

很高兴知道:即使此属性为空或甚至未设置,也可以通过ldap_modify提交一个空数组。