PHP Conference Japan 2024

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服务器";
}
?>

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top