Php ldap_mod_add或ldap_add不用于在ldap服务器中添加新帐户
有人知道用php脚本在LDAP服务器中添加新帐户吗? 如果我在google中搜索,答案总是这个函数ldap\u add或ldap\u mod\u add,但是我知道这个函数只是添加了像ldap\u mod\u add这样的属性。我只是搜索php函数,而不是ad2ldap或两者 有人知道如何在LDAP服务器中添加新帐户吗 这是我的代码:Php ldap_mod_add或ldap_add不用于在ldap服务器中添加新帐户,php,server,ldap,Php,Server,Ldap,有人知道用php脚本在LDAP服务器中添加新帐户吗? 如果我在google中搜索,答案总是这个函数ldap\u add或ldap\u mod\u add,但是我知道这个函数只是添加了像ldap\u mod\u add这样的属性。我只是搜索php函数,而不是ad2ldap或两者 有人知道如何在LDAP服务器中添加新帐户吗 这是我的代码: /** * new release */ public static function addNewAccountWithauthForAdmin($user,
/**
* new release
*/
public static function addNewAccountWithauthForAdmin($user,$attributes=array(),$attributes_val=array(),$user_auth,$password_auth){
$userdata = array();
$userdn = "CN=".$user.",OU=USERS,OU=CORP,DC=domain,DC=corp"; print $userdn;
$user_auth = self::userDomainName($user_auth);
$password_auth = base64_decode($password_auth);
$is_arrayaction = (is_array($attributes) AND is_array($attributes_val)) AND (count($attributes) == count($attributes_val)) ? true : false;
if($is_arrayaction){
$action = array();
for($i=0;$i<count($attributes);$i++){
$userdata[$attributes[$i]] = $attributes_val[$i];
// Output $userdata : {"ipphone":"1825","mail":"nomail@mail.com"}
}
$action[$i] = ldap_mod_add(self::authForChangeAttr($user_auth,$password_auth),$userdn,$userdata);
return $action;
}
$userdata[$attributes] = $attributes_val;
// Output $userdata : {"ipphone":"1825"}
$action = ldap_mod_add(self::authForChangeAttr($user_auth,$password_auth),$userdn,$userdata) ? true : false;
return $action;
}
/**
*新版本
*/
公共静态函数addNewAccountWithauthForAdmin($user,$attributes=array(),$attributes\u val=array(),$user\u auth,$password\u auth){
$userdata=array();
$userdn=“CN=”.$user.”,OU=USERS,OU=CORP,DC=domain,DC=CORP”;打印$userdn;
$user\u auth=self::userDomainName($user\u auth);
$password\u auth=base64\u decode($password\u auth);
$is_arrayaction=(is_array($attributes)和is_array($attributes_val))和(count($attributes)==count($attributes_val))?true:false;
如果($is_arrayaAction){
$action=array();
对于($i=0;$i
ldap\u mod\u add
允许您向已存在的条目添加属性
ldap\u add
允许您向目录添加条目
ldap\u add
需要3个参数:
link\u identifier
:ldap\u connect
功能的结果
dn
:要添加的条目的dnentry
:表示条目的数组。它需要具有所有属性才能执行ldapadd
操作(以LDAP方式),即,您必须设置:
- 所需的对象类
["objectClass"]=["Top","person","organizationalPerson","user"];
- ObjectClass指定的强制属性 有关objectClass用户,请参见以下内容:
你也可以在这里找到一个示例代码:试试这样的东西-对我有用
$ds = ldap_connect("ldaps://example.org");
if ($ds) {
$r = ldap_bind($ds, "userAdmin", "adminPSW");
$dn = 'CN=username,CN=Users,DC=example,DC=org';
$pwdtxt="password";
## Create Unicode password
$newPassword = "\"" . $pwdtxt . "\"";
$len = strlen($newPassword);
$newPassw = "";
for($i=0;$i<$len;$i++) {
$newPassw .= "{$newPassword{$i}}\000";
}
$ldaprecord['cn'] = "username";
$ldaprecord['mail'] = "mail@example.org";
$ldaprecord['ipphone'] = "0123456789";
ldap_add($ds, $dn, $ldaprecord);
$encodedPass = array('unicodepwd' => $newPassw);
ldap_mod_replace ($ds, $dn, $encodedPass);
}
$res = ldap_error ($ds);
if( $res=="Success"){
##Success
}
ldap_close($ds);
$ds=ldap\u连接(“ldaps://example.org");
若有($ds){
$r=ldap_-bind($ds,“userAdmin”,“adminPSW”);
$dn='CN=username,CN=Users,DC=example,DC=org';
$pwdtxt=“密码”;
##创建Unicode密码
$newPassword=“\”.$pwdtxt.\”;
$len=strlen($newPassword);
$newPassw=“”;
对于($i=0;$i$newPassw);
ldap_mod_replace($ds、$dn、$encodedPass);
}
$res=ldap_错误($ds);
如果($res==“成功”){
##成功
}
ldap_close($ds);