我尝试使用LDAP user password change code,但我坚持ldap_modify
抛出LDAP错误的步骤:
1 - 操作错误
首先我认为密码加密方法不正确,甚至代码
$rootdn = "cn=ldap_manager,dc=mycompany,dc=local";
$rootpwd = "mysecretkeys";
$r = ldap_bind($con,$rootdn,$rootpwd);
$entry = array();
$entry["givenName"] = "BabaGanush";
if ($r = ldap_modify($con,$user_dn,$entry) === false){
$error = ldap_error($con);
$errno = ldap_errno($con);
$message[] = "E201 - Please contact the administrator.";
$message[] = "$errno - $error";
} else {
$message[] = "Name was changed";
}
无效(获得相同的错误#1)。
我已尝试过rootDN的所有可能组合,但在使用ldap_manager
$rootdn = "CN=users,DC=mycompany,DC=local";
$username = 'ldap_mamanger';
$domain = 'mycompany';
$rootdn = $username;
$rootdn = $username.'@'.$domain;
$rootdn = $domain.'\\'.$username;
$rootdn = "uid=$username,cn=users,dc=$domain,dc=local";
$rootdn = "uid=$username,dc=$domain,dc=local";
$rootdn = "uid=$username,dc=local";
$rootdn = "uid=$username,dc=$domain";
$ldaprdn = $domain.'\\'.$username;
适用于普通AD用户(可以绑定)
dsquery user -name ldap*
返回
" CN = ldap_manager,CN =用户,DC = myCompany中,DC =本地" " CN = ldap_user,CN =用户,DC = myCompany中,DC =本地"
有什么可能是错的?
答案 0 :(得分:1)
据我所知,您正在尝试修改完整的条目。这意味着,ldap_modify
将使用新内容替换位于给定DN下的当前内容。并且我确定当您使用包含 给定名称的条目替换当前条目时,有些字段需要留空。
因此,要么获取当前条目并在该结果中替换有问题的值,要么您可能需要查看ldap_mod_replace
。