ldap_exop_passwd

(PHP 7 >= 7.2.0, PHP 8)

ldap_exop_passwdPASSWD 扩展操作助手

描述

ldap_exop_passwd(
    LDAP\Connection $ldap,
    string $user = "",
    #[\SensitiveParameter] string $old_password = "",
    #[\SensitiveParameter] string $new_password = "",
    array &$controls = null
): string|bool

执行 PASSWD 扩展操作。

参数

ldap

一个 LDAP\Connection 实例,由 ldap_connect() 返回。

user

要更改密码的用户 dn。

old_password

此用户的旧密码。可以根据服务器配置省略。

new_password

此用户的新的密码。可以省略或为空以生成密码。

controls

如果提供,密码策略请求控制将与请求一起发送,并将用请求返回的 LDAP 控制 数组填充。

返回值

如果 new_password 为空或省略,则返回生成的密码。否则,成功时返回 true,失败时返回 false

变更日志

版本 描述
8.1.0 现在,ldap 参数需要一个 LDAP\Connection 实例;以前,需要一个有效的 ldap link 资源
8.0.0 现在 controls 可以为空;以前,它默认为 []
7.3.0 添加了对 controls 的支持

示例

示例 #1 PASSWD 扩展操作

<?php
$ds
= ldap_connect("localhost"); // 假设 LDAP 服务器在此主机上

if ($ds) {
// 使用适当的 dn 进行绑定以提供更新访问权限
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");
if (!
$bind) {
echo
"无法绑定到 LDAP 服务器";
exit;
}

// 使用 PASSWD EXOP 更改用户的密码以生成一个新的密码
$genpw = ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", "secret");
if (
$genpw) {
// 使用生成的密码进行绑定
$bind = ldap_bind($ds, "cn=root, o=My Company, c=US", $genpw);
}

// 将密码恢复为 "secret"
ldap_exop_passwd($ds, "cn=root, o=My Company, c=US", $genpw, "secret");

ldap_close($ds);
} else {
echo
"无法连接到 LDAP 服务器";
}
?>

参见

添加笔记

用户贡献笔记 1 个笔记

-28
dumm at tutoerilio dot gnu
5 年前
Schnaberhagi summberliö rumbasuuna gumpperlimuss!
To Top