ldap_mod_replace() [function.ldap-mod-replace]: Modify: Server is unwilling to perform

前端 未结 2 1295
滥情空心
滥情空心 2020-12-18 06:08

Getting an error:

Server is unwilling to perform

while changing unicodePwd in AD through PHP. However, I\'m able to search, add,

2条回答
  •  没有蜡笔的小新
    2020-12-18 06:47

    There are a number of things you need to get exactly right to set a password in AD via LDAP.

    • you need to use an SSL connection (ldaps://)

    • the password needs to be enclosed in quotes

    • the (quoted) password needs to be encoded in 16-bit unicode (UTF-16LE)

    Assuming the password you're trying to set is ordinary ascii characters, the unicode conversion can be accomplished by adding a \000 byte after each byte of the ascii string, as shown in this code sample.

    So your example would instead look like:

    $newpassword = "asdf1234";
    $newpassword = "\"" . $newpassword . "\"";
    $len = strlen($newpassword);
    for ($i = 0; $i < $len; $i++) $newpass .= "{$newpassword{$i}}\000";
    $user["unicodePwd"] = $newpass;
    

提交回复
热议问题