2017-10-06 160 views
0

我正在使用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

回答

0

我找到了一個清空活動目錄屬性的好方法。

對於多值和單值屬性,使用ldap_modify提交一個空數組會清空該屬性。

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

爲什麼我很困惑擺在首位:不允許然而,通過ldap_add提交一個空數組()。我對ldap_modify和ldap_add操作都使用了相同的映射函數,並且嘗試通過ldap_add提交空屬性時出現錯誤。這是不允許的。

很高興知道:即使此屬性爲空或甚至未設置,也可以通過ldap_modify提交一個空數組。