如何使用带有Windows身份验证(NTLM)的PHP内置服务器来填充$ _SERVER [“LOGON_USER”]?

时间:2018-02-10 01:51:23

标签: php php-builtin-server ntlm-authentication

我有使用use_ratings的脚本,这些脚本是通过IIS身份验证设置在我的服务器上获得的。我希望这个相同的变量在本地运行时包含我的$_SERVER["LOGON_USER"],或者至少在我在localhost上启动PHP内置服务器时有办法设置它。

如何在我的机器上配置PHP以获取和填充此变量的方式与在IIS中运行时相同?

PS:我看过this question,但答案是domain\username,而不是$_ENV

1 个答案:

答案 0 :(得分:0)

这是一种解决方法,如果有人有更好/更合适的解决方案(即启用NTLM),请将其作为答案发布,我将接受它。

我能够使用路由器脚本填充该变量。根据{{​​3}},此脚本在每个HTTP请求的开头运行,因此我在本地运行时使用它来设置此变量。

同样在我的情况下,我的环境设置了这两个变量USERDOMAINUSERNAME,因此我使用它们来构成LOGON_USER服务器变量。

<强> routerCredentials.php

<?php
$_SERVER["LOGON_USER"] = getenv("USERDOMAIN") . "\\" . getenv("USERNAME");
return false; // serve the requested resource as-is.

要使用它,只需在启动PHP内置服务器时指向该文件:

php -S localhost:8000 "c:\somepath\routerCredentials.php"