簡體   English   中英

如何使用PHP從LDAP獲取全名

[英]How to get the full name from LDAP using PHP

使用PHP從LDAP登錄后,我試圖獲取用戶的全名。 我已成功連接到LDAP,但仍無法使用基於用戶名的全名。

這是我的代碼

 <?php 
$username = '*****';
$password = '*****';
$account_suffix = '@*****.com';
$hostname = '**.**.*.***';


$ldap = ldap_connect($hostname);
if ($bind = ldap_bind($ldap,$username . $account_suffix, $password)) {
  echo "success";
  if ($bind) {
        $filter="(sAMAccountName=$username)";
        $result = ldap_search($ldap,"dc=****,dc=com",$filter);
        ldap_sort($ldap,$result,"sn");
        $info = ldap_get_entries($ldap, $result);
        for ($i=0; $i<$info["count"]; $i++)
        {
            if($info['count'] > 1)
                break;
            echo "<p>You are accessing <strong> ". $info[$i]["sn"][0] .", " . $info[$i]["givenname"][0] ."</strong><br /> (" . $info[$i]["samaccountname"][0] .")</p>\n";
            echo '<pre>';
            var_dump($info);
            echo '</pre>';
            $userDn = $info[$i]["distinguishedname"][0]; 
        }
        @ldap_close($ldap);
    }
} else {
  echo "failed";
}
?> 

任何建議,我想念什么? 謝謝。

打開與Active Directory的連接時,您需要設置幾個選項以確保鏈接正常運行,如下所示:

...
$ldap = ldap_connect($hostname);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
if ($bind = ldap_bind($ldap,$username . $account_suffix, $password)) {
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM