我有使用$_SERVER["LOGON_USER"]
通过 IIS 身份验证设置在我的服务器上获得的脚本。我希望这个变量domain\username
在本地运行时包含我的变量,或者至少在我启动本地主机上的 PHP 内置服务器时有一种方法来设置它。
如何在我的机器上配置 PHP 以像通过 IIS 运行时一样获取和填充这个变量?
PS:我看过这个问题,但答案地址$_ENV
,没有$_SERVER
。
我有使用$_SERVER["LOGON_USER"]
通过 IIS 身份验证设置在我的服务器上获得的脚本。我希望这个变量domain\username
在本地运行时包含我的变量,或者至少在我启动本地主机上的 PHP 内置服务器时有一种方法来设置它。
如何在我的机器上配置 PHP 以像通过 IIS 运行时一样获取和填充这个变量?
PS:我看过这个问题,但答案地址$_ENV
,没有$_SERVER
。
这是一种解决方法,如果有人有更好/正确的解决方案(即启用 NTLM),请将其发布为答案,我会接受。
我能够使用路由器脚本填充该变量。根据文档,这个脚本在每个 HTTP 请求的开始运行,所以我在本地运行时使用它来设置这个变量。
同样在我的情况下,我的环境设置了这两个变量,USERDOMAIN
并且USERNAME
,所以我使用它们来形成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"