我的问题是,当我尝试检索属性'userPassword'的值时,它将无法工作我在PHP下工作,问题是当我打开Phpldapadmin时我可以看到该属性,但是当我尝试使用这行代码检索它无法正常工作
$sr = ldap_search($ds,"ou=people,dc=powerm,dc=com","uid=".$login);
$data = ldap_get_entries($ds,$sr);
$password = $data[0]["userpassword"][0];
$displayName = $data[0]["displayname"][0];
$num_tel =$data[0]["mobile"][0];
$mail =$data[0]["mail"][0]
其他属性工作正常,期望用户密码
任何人都可以帮忙吗?
感谢。
答案 0 :(得分:2)
尝试指定要显式返回的属性。
$dn = 'ou=people,dc=powerm,dc=com';
$filter = 'uid=' . $login;
$attrs = ['displayname', 'userpassword', 'mobile', 'mail'];
$sr = ldap_search($ds, $dn, $filter, $attrs);
除非您明确要求,否则可以将目录配置为不返回此安全敏感属性。
该属性可能还需要特殊权限才能访问它 - 您是否使用相同的凭据连接到代码中的数据库,就像在phpLDAPAdmin中一样?
服务器也可能配置为不通过加密连接返回密码 - 使用传递给ldaps://
的{{1}}网址或使用ldap_start_tls()
启动。