无法在php中从intranet获取用户名loggedin name
我想直接将用户名传递到ldap,而不需要用户交互。 我可以获取客户端的主机名、ip地址,但无法从php中的intranet获取用户配置文件名(用户名),请帮助我获取用户名无法在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
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服务进行身份验证。但这不是默认设置