簡體   English   中英

無法從php的Intranet獲取用戶名登錄名

[英]Unable to Get Username loggedin name from intranet in php

我想直接將用戶名傳遞給ldap,而無需用戶交互。 我可以獲取客戶端的主機名,IP地址,但是無法從php的Intranet獲取用戶配置文件名(用戶名),請幫助我獲取用戶名

function checkingLogin($username, $pass, $domain) {

    $dom = "$domain\\"; //Domain Prefix for UNAME which ouputs "domain\"
    $user = $dom . $u; 
    $hostname = 'ldap://abc.com';
    $baseDN = 'OU=users, DC=abc, DC=com'; //Narrow down if you have alot of objects as search could take along time
    $search = "(samaccountname=$u)"; //Compare with Username

    $ldap = ldap_connect($hostname);

    if ($ldap) {

        $ldapbind = ldap_bind($ldap, $user, $pass);

        if ($ldapbind) {

            $ldapSearch = ldap_search($ldap, $baseDN, $search);
            $entry = ldap_first_entry($ldap, $ldapSearch);
            $info = ldap_get_values($ldap, $entry, "displayname"); 

            return $info[0];

        }

        return false; //Failed Auth

    } 

      return false; //Connection Failed

}

出於安全考慮,用戶瀏覽器未提供該信息。 否則,這意味着您用於登錄計算機的用戶名將被發送到每個網站 你真的想要那個嗎?

除此之外,它還需要在計算機和瀏覽器之間進行非常緊密的集成。 在fe Windows和Edge或IE上可能有這種可能,但我懷疑它是否可以在Firefox或Chrome上運行。

雖然有一些方法可以實際執行您想做的事情。 但是它們需要訪問客戶端計算機和眾所周知的環境。 然后,您也許可以設置諸如Kerberos之類的內容,以允許登錄到您的計算機,並使用該令牌對Web服務進行身份驗證。 但這不是默認設置!

暫無
暫無

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

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