【发布时间】: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