Tommy 碎碎念

Tommy Wu's blog

« 上一篇 | 下一篇 »

透過 php 更改 ldap 的密碼
post by tommy @ 06 三月, 2008 19:14

一般來說, 我們在使用 php 去檢查使用者的帳號密碼時, 都是直接用該組帳號密碼去執行 ldap_bind() 的動作, 如果成功的話, 表示密碼是對的, 如果失敗的話, 表示密碼是錯的. (唯一的例外是... 如果密碼是空字串, 也會成功, 所以用這個方法要先檢查密碼是不是空的) 如:

if ($password !== '' && ldap_bind($id, "uid=$user,dc=example,dc=com", $password))
echo "password correct!\n";
else
echo "wrong password!\n";

但是, 如果要修改密碼時, 又該如何呢? 我們可以用下面的方式:

if (ldap_mod_replace($id, "uid=$username,dc=example,dc=com",
array('userpassword' => "{MD5}".base64_encode(pack("H*",md5($newpass)))
echo "succeded\n";
else
echo "failed";

就是先用該使用者 (或有權限改密碼的帳號) bind 之後, 去更改 userpassword 這個屬性. 使用 md5 的方式去設定密碼.

Del.icio.us Furl HEMiDEMi Technorati MyShare
迴響
暱稱:
標題:
個人網頁:
電子郵件:
authimage

迴響

  

Bad Behavior 已經阻擋了 57 個過去 7 天試圖闖關的垃圾迴響與引用。
Power by LifeType. Template design by JamesHuang. Valid XHTML and CSS