使用Windows身份验证作为Intranet应用程序的登录凭据

时间:2013-02-14 18:53:44

标签: php windows authentication windows-nt

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

我到目前为止已经尝试了

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

它们都返回空值。

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

2 个答案:

答案 0 :(得分:1)

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

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

如果您需要更多信息,请与我们联系。

答案 1 :(得分:0)

您必须先发送NTLM-Authenticate标头。之后,$ _SERVER-Vars

中应该有合适的用户
header('WWW-Authenticate: NTLM');
echo $_SERVER['AUTH_USER'];

AFAIK这只适用于InternetExporer - browsers