[英]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.