无法让ldap_modify工作

时间:2016-11-22 15:34:36

标签: php ldap

我尝试使用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 =本地"

有什么可能是错的?

1 个答案:

答案 0 :(得分:1)

据我所知,您正在尝试修改完整的条目。这意味着,ldap_modify将使用新内容替换位于给定DN下的当前内容。并且我确定当您使用包含 给定名称的条目替换当前条目时,有些字段需要留空。

因此,要么获取当前条目并在该结果中替换有问题的值,要么您可能需要查看ldap_mod_replace