ldap_sasl_bind

(PHP 5, PHP 7, PHP 8)

ldap_sasl_bind使用 SASL 绑定到 LDAP 目录

描述

ldap_sasl_bind(
    LDAP\Connection $ldap,
    ?string $dn = null,
    #[\SensitiveParameter] ?string $password = null,
    ?string $mech = null,
    ?string $realm = null,
    ?string $authc_id = null,
    ?string $authz_id = null,
    ?string $props = null
): bool
警告

此函数目前未记录,仅提供其参数列表。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.1.0 ldap 参数现在期望一个 LDAP\Connection 实例;以前,期望一个有效的 ldap link 资源
8.0.0 dnpasswordmechrealmauthc_idauthz_idprops 现在可以为 null。

注释

注意: 要求
ldap_sasl_bind() 需要 SASL 支持 (sasl.h)。请确保在配置 PHP 时使用 --with-ldap-sasl,否则此函数将未定义。

添加注释

用户贡献的注释 4 个注释

mbaynton
10 年前
调试绑定失败环境的提示:此方法发出的许多 PHP 警告以“PHP Warning: ldap_sasl_bind(): Unable to bind to server: [reason]”开头,其中 [reason] 可以是各种字符串。这使得它看起来像是 ldap_sasl_bind 导致的故障,但所有 [reason] 实际上都来自底层的 c 函数 ldap_sasl_interactive_bind_s。除了 php 之外,许多软件都使用此函数,因此我发现通过在网络上搜索“ldap_sasl_interactive_bind_s [reason]”可以获得更多更丰富的故障排除信息。
devel at romanr dot info
11 年前
存在一些可重入错误:您不能在同一个进程中多次使用此函数。PHP 进程(apache 或 fastcgi)应该重新启动。考虑使用 PHP_FCGI_MAX_REQUESTS=1
dwhite at olp dot net
16 年前
在下面错误中引入的补丁(已包含在 CVS 中)中,此函数的参数应该是

bool ldap_sasl_bind ( resource $link [, string $binddn [, string $password [, string $sasl_mech [, string $sasl_realm [, string $sasl_authc_id [, string $sasl_authz_id [, string $props]]]]]]] )

一些示例调用

$r=ldap_sasl_bind ( $ds, NULL, 'mysecret', 'DIGEST-MD5', NULL, 'jimmy');

带有 authz_id,指定一个 dn
$r=ldap_sasl_bind ( $ds, NULL, 'mysecret', 'DIGEST-MD5', NULL, 'jimmy', 'dn:uid=tommy,ou=people,dc=example,dc=com');

带有 authz_id,指定一个 SASL 用户名
$r=ldap_sasl_bind ( $ds, NULL, 'mysecret', 'DIGEST-MD5', NULL, 'jimmy', 'u:tommy');

此外,由于 SASL 身份验证是在 LDAP 版本 3 中引入的,
您可能需要使用以下命令显式设置版本号
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
dahgdevash at gmail dot com
17 年前
错误,函数参数被错误地发送到服务器
查看
http://bugs.php.net/bug.php?id=39291
To Top