我想知道当他/她使用 PHP 登录公司网络的 Intranet 时,我从哪里获取或如何获取用户详细信息,例如用户名、ID 号和电子邮件?
我想使用这些详细信息来自动对正在开发的 Web 应用程序的用户进行身份验证。
我已阅读有关 AUTH_USER 的信息,但我在哪里或如何访问该变量?
您可以通过PHP LDAP函数完成大部分您想做的事情。唯一的问题是您需要为每个用户获取一个唯一的项目。您将需要做更多的研究,但我很确定如果您使用 IIS 而不是 Apache 作为网络服务器,那么在另一端获取该人的登录名/用户名会有一些怪癖或技巧 - 你可以然后使用以下方式查询 LDAP:
<?php
// $ds is a valid link identifier for a directory server
// $person is all or part of a person's name, eg "Jo"
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." entries returned\n";
?>
Apache 只会将 AUTH_USER 作为空白返回。一种解决方法是为他们的登录创建一次性请求,将其存储在 cookie 中,并使用相同的 LDAP 查询来获取有关用户的最新信息。