2009-12-23 112 views
1

我在Ubuntu上使用Zend框架,PHP,Ldap。我使用zend库从ldap验证用户身份。现在我想用zend更改用户的ldap密码。任何想法?如何使用zend更改ldap密码

这是我用来获取zend认证适配器的方法。它工作正常,用户使用此适配器进行身份验证。

public function getAuthAdapter(array $params) 
{ 
     $front = Zend_Controller_Front::getInstance(); 

     $options = $front->getParam('bootstrap')->getOption('ldap'); 
     $params['username'] = split("@" , $params['username']);   
     $username = 'cn=' . $params['username'][0] . ',' . $options['server1']['baseDn'];      
     $adapter = new Zend_Auth_Adapter_Ldap($options, $username, $params['password']); 

     $adapter->setIdentity($params['username']); 
     $adapter->setCredential($params['password']); 

     return $adapter; 
} 

现在如何更改ldap密码?谢谢

回答

2

使用Zend_Auth_Adapter_Ldap验证登录等与活动目录。

对于ldap的管理目的,使用Zend_Ldap。

阅读来自Zend_Ldap API的Zend的文件,具体有以下

Zend_Ldap保存(字符串| Zend_Ldap_Dn $ DN,数组$输入)

保存DN与 由$标识的项其属性$输入到LDAP 树。如果 条目无法保存,则抛出Zend_Ldap_Exception。这个 方法通过查询LDAP 树决定是否添加条目或更新 。

3
$ldap=new Zend_Ldap($options); 
    $ldap->bind();  
    $entry=$ldap->getEntry($user->dn); 
    $entry['userpassword'][0]=$newpassword; 
    $ldap->save($user->dn, $entry); 

这是它如何工作,形成了我!请注意,在发送之前,我没有发送密码,但服务器使用正确的密码来存储密码。