5

我正在使用 PHP 开发 Intranet Web 应用程序。我试图使用 Windows NT 登录凭据登录到应用程序。我在这里遇到的麻烦是如何获取远程用户的 Windows 用户名?我想获取用户名,然后检查各种 LDAP 组,以便我可以将它们引导到我的应用程序中的适当页面。

到目前为止我已经尝试过

<?php
echo $_SERVER['REMOTE_USER'];
echo $_SERVER['PHP_AUTH_USER'];
?>

它们都返回空值。

更新:使用 $_SERVER['REMOTE_ADDR'] 我能够获取计算机的 IP 地址。无论如何我可以获得用户 ID/用户名(任何唯一的)并使用它来与 LDAP 组进行比较?当他们进入网站的主页并存储会话然后在整个网站中使用会话变量时,我想这样做。

4

2 回答 2

1

不确定您是否仍然需要帮助,但最近我不得不创建代码以使用使用 IIS 运行的 Windows 身份验证自动将 Intranet 用户登录到我们的网站。当使用 windows 身份验证和 ISS 以获取登录用户时,首先确保您启用了 windows 身份验证并禁用了匿名。

$_SERVER['AUTH_USER']; // obtain the LanID of the logged in user.

如果您需要更多信息,请告诉我。

于 2013-11-22T13:47:37.323 回答
0

您必须先发送 NTLM-Authenticate 标头。之后,$_SERVER-Vars 中应该有正确的用户

header('WWW-Authenticate: NTLM');
echo $_SERVER['AUTH_USER'];

AFAIK 这仅适用于 InternetExporer - 浏览器

于 2013-02-14T19:01:29.920 回答