我正在使用PHP构建内部应用程序,似乎无法弄清楚如何让用户使用他们的Active Directory用户名自动登录。从本质上讲,用户不必实际登录(因为登录系统需要用户名密码),所以从本质上讲,我只是拉他们的AD用户名。
根据我在网上找到的所有信息,最常见的答案是使用:
$_SERVER['AUTH_USER']
但这不会返回值。我能够提取的最接近的是工作站用户名(这是特定于系统的,与登录的用户无关)。
对此工作的时间太长了......有什么想法吗?
编辑:我在IIS上运行。
答案 0 :(得分:1)
我只在apache上使用过NTLM,但必须在http服务器上启用NTLM支持(在本例中为IIS)。
此链接适用于IIS 6.0,不确定您的内容:link。
一旦工作,当您在$ _SERVER变量中访问该站点时,应该具有REMOTE_USER或PHP_AUTH_USER。我从来没有见过AUTH_USER,如果这两个都不可见,你可以打印出你的$ _SERVER变量,看看是否还有别的东西。
print '<pre>';
print_r($_SERVER);
答案 1 :(得分:0)
您应该更改目录安全性选项, 单击站点上的“属性”(或“默认网站”),转到“目录安全性”选项卡,选择“编辑”,取消选中“启用匿名访问”。 检查集成Windows身份验证和基本身份验证(如有必要)。 然后,您将在$ _SERVER ['AUTH_USER']中记录用户名。 但!您可能需要更改文件夹和.php文件的权限。
IIS不再使用IUSR_xxx,而是带有已登录用户的权限。因此,您可能需要授予用户/域用户或每个人访问您的文件的权限。 希望这会有所帮助。