【问题标题】:Add password user using LDAP PHP使用 LDAP PHP 添加密码用户
【发布时间】:2016-09-30 09:02:39
【问题描述】:

我每天都在寻找我的问题,我尝试了很多解决方案,但我没有找到...... :(

我想通过 PHP 使用 ldap_add 创建一个用户。无需启用帐户和密码即可正常工作。您可以在下面找到代码。

你能帮帮我吗?

配置: PHP 5.6 带有 AD 的 Windows Server 2012 R2

当我使用$info["useraccountcontrol"]=544; 时,我可以启用一个帐户,但该帐户没有密码...用户必须在没有密码的情况下登录并在第一次连接时输入他的新密码。 *

我尝试使用$info['userPassword'] 添加密码,并在 512 使用chand useraccountontrol 并收到此错误:

ldap_add(): 添加:服务器不愿意执行

这是我的代码:

<?php
$name = htmlspecialchars($_POST["name_build"]);
$lastname = htmlspecialchars($_POST["lastname_build"]);
$department = utf8_encode(htmlspecialchars($_POST["department_build"]));
$title = utf8_encode(htmlspecialchars($_POST["title_build"]));
$dn="CN=$name OU=Users, o=Domocom, c=net";

$ds = ldap_connect("192.168.1.1",389);  
if ($ds) {

    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT
    ldap_bind($ds, "administrateur@domocom.net", "password");

    // Prépareles données
    $cn = $info["cn"] = "$lastname $name";
    $info["sn"]="$name";
    $info["givenname"]="$lastname";
    $info["displayname"]="$lastname $name";
    $info["name"]="$lastname $name";
    $info["userprincipalname"]= "$lastname.$name@domocom.net";
    $info["samaccountname"]= "$lastname.$name";
    $info["title"]="$title";
    $info["department"]="$department";
    $info["mail"]="$lastname.$name@domocom.fr";
    $info["postalcode"]="69009";
    $info["objectClass"][0]="user";
    //$info['userPassword'] = "password";
    //$info["useraccountcontrol"]=544;

    $r = ldap_add($ds,"CN=$cn,OU=Users,OU=Direction,OU=Domocom-SP,DC=domocom,DC=net", $info);
    ldap_close($ds);
} else {
    echo "unable to connect to ldap server";
}
?>

非常感谢。

PS:这是我学校的假社会。 :p

【问题讨论】:

    标签: php mysql active-directory ldap


    【解决方案1】:

    如果是 AD,您可能需要使用安全的 LDAP 连接。

    为此,您需要致电ldap_connect('ldaps://192.168.1.1:&lt;port of the AD&gt;');。使用两个参数调用 ldap_connect 已被弃用,应避免使用。将其与 LD​​AP-URI 一起使用!

    您也可以省略ldap_connect 周围的if…else,因为它几乎在所有情况下都会返回true。而true 返回值并不意味着与服务器的连接实际上已建立。首先在需要连接的第一个 ldap_-command 上建立连接,该连接通常为ldap_bind

    然后您可能想看看Change AD password using PHPIssue updating AD password using PHPChange AD Password using PHP/COM/ADSI/LDAP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-05
      • 2020-02-29
      • 2011-08-19
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多