2013-02-14 112 views
4

我工作在PHP内部网的Web应用程序。我试图使用Windows NT登录凭据登录到应用程序。我在这里遇到的麻烦是如何获得远程用户的Windows用户名? 我想获得的用户名,然后检查对各种LDAP组,这样我可以引导他们到合适的在我的应用程序页面。使用Windows身份验证的登录凭据Intranet应用程序

我到目前为止已经试过

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

它们都返回空值。

更新:使用$ _ SERVER [“REMOTE_ADDR”]林抽到了计算机的IP地址。无论如何,我可以得到用户名/用户名(任何唯一的)并将其用于与LDAP组进行比较?我想这样做,当他们进入网站的主页并存储会话,然后在整个网站中使用会话变量。

回答

0

你必须先发送NTLM进行身份验证头。在此之后,应该有在InternetExporer的$ _ SERVER-瓦尔

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

AFAIK这只能正确的用户 - 浏览器

+1

它给了我一个弹出输入登录信息。我想使用现有的Windows NT登录信息来检查我的LDAP组。 – Naveen 2013-02-14 19:07:37

1

不知道如果你还需要这方面的帮助,但最近我已经创建代码使用使用IIS运行的Windows身份验证自动将Intranet用户登录到我们的网站。在使用Windows身份验证和ISS来获取登录用户时,首先确保您已启用Windows身份验证并禁用匿名。

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

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

相关问题