2017-10-06 73 views
0

PHP LDAPライブラリを使用してMicrosoft Active Directoryにアクセスしていますが、単一値の属性を空にする方法を探しています。LDAP属性をNULLに設定するには

アクティブディレクトリの連絡先を更新するためにldap_modify(http://php.net/manual/de/function.ldap-modify.php)を使用しています。残念ながら、空の文字列( '')を書き込もうとすると、ldapライブラリから構文エラーが返されます。これは、私が新しいものを持っていない間に、単一の値の連絡先属性を上書きしようとすると起こります。

単一の値でldap属性を削除する明確な方法はありますか?今私の唯一の解決策は、 ''(シングルスペース)を書くことですが、これが他の問題を引き起こす可能性があるように感じます。

多値属性のクリーンアップは簡単です。 LDAPは空の配列(array())の挿入を許可します。

ご協力いただきありがとうございます。

+2

あなたは自分でそれを言った。属性値を削除し、nullに設定しないとします。 – 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を使って空の属性を送信する際にtrypingするエラーが出ました。これは許可されていません。

ご存知のことですが、この属性が空であっても、まだ設定されていなくても、ldap_modifyで空の配列を送信することはできます。

関連する問題