如何将LDAP属性设置为NULL
问题描述:
我正在使用PHP LDAP库访问Microsofts Active Directory,并且正在寻找一种干净的方法来清空单个值属性。如何将LDAP属性设置为NULL
我正在使用ldap_modify(http://php.net/manual/de/function.ldap-modify.php)更新活动目录联系人。不幸的是,当我尝试写一个空字符串('')时,我收到了来自ldap库的语法错误。当我尝试覆盖单个值联系人属性而我没有新联系人属性时,会发生这种情况。
有没有一种干净的方法来删除具有单个值的ldap属性?我现在唯一的解决方案是写''(单个空间),但我觉得这可能会导致其他问题。
清理多值属性很简单。 LDAP确实允许插入空数组(array())。
非常感谢您的支持。
答
我找到了一个清空活动目录属性的好方法。
对于多值和单值属性,使用ldap_modify提交一个空数组会清空该属性。
$entry = array();
$entry["member"] = array();
ldap_modify($link, $dn, $entry);
为什么我很困惑摆在首位:不允许然而,通过ldap_add提交一个空数组()。我对ldap_modify和ldap_add操作都使用了相同的映射函数,并且尝试通过ldap_add提交空属性时出现错误。这是不允许的。
很高兴知道:即使此属性为空或甚至未设置,也可以通过ldap_modify提交一个空数组。
你自己说过。您想要删除属性值,而不是将其设置为空。 – EJP
感谢您的回复。因此,我不应该通过一个值(空字符串),而是通过ldap_modify为单值属性传递一个空数组? – Andre