无法在php中从intranet获取用户名loggedin name

无法在php中从intranet获取用户名loggedin name,php,ldap,Php,Ldap,我想直接将用户名传递到ldap,而不需要用户交互。 我可以获取客户端的主机名、ip地址,但无法从php中的intranet获取用户配置文件名(用户名),请帮助我获取用户名 function checkingLogin($username, $pass, $domain) { $dom = "$domain\\"; //Domain Prefix for UNAME which ouputs "domain\" $user = $dom . $u; $hostname

我想直接将用户名传递到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

}

出于安全考虑,用户浏览器不提供该信息。否则,这将意味着您用来登录计算机的用户名将被发送到每个网站。你真的想要吗

除此之外,它还需要计算机和浏览器之间的紧密集成。这在f.e.Windows和Edge或IE上是可能的,但我怀疑这在Firefox或Chrome上是否有效

不过,有很多方法可以真正做到你想做的事情。但它们需要访问客户机和知名环境。然后,您可能可以设置Kerberos之类的东西,以允许登录到您的计算机,并使用该令牌对Web服务进行身份验证。但这不是默认设置