我已经成功地在我的php脚本中运行了ldap_connect和ldap_bind命令。现在我需要通过用户id获取guvenName。我该怎么做呢?
$username = $_POST['username'];
$password = $_POST['password'];
define('LDAP_SERVER', 'localhost');
define('LDAP_PORT', 389);
define('LDAP_TOP', 'ou=people,dc=domain,dc=com');
$ds = ldap_connect(LDAP_SERVER, LDAP_PORT);
if (!$ds) {
echo "FALSE";
}
if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
@ldap_close($ds);
echo "FALSE";
}
$dn = 'uid=' . $username . "," . LDAP_TOP;
if (!ldap_bind($ds, $dn, $password)) {
echo "FALSE";
}
一般来说很简单
public function getusercn($accountname)
{
$filter_person = "(&(sAMAccountName={$accountname}))";
$sr_person = ldap_search($this->ds_ad,$this->base_user_dn,$filter_person);
$sr = ldap_get_entries($this->ds_ad, $sr_person);
$attr = $sr[0]["givenName"][0];
return $attr;
}
$this->ds_ad -它是$ds在你的代码
$this->base_user_dn -是您想要搜索的基础OU(如您的情况中的LDAP_TOP)
sAMAccountName -在您的情况下是"用户id"属性uid
givenName -是你正在寻找的属性
所有的属性都已经在$sr变量中,所以你可以使用var_dump来检查所有的内容