У меня есть сценарии, которые используют $_SERVER["LOGON_USER"]
который получается на моих серверах через настройки аутентификации IIS. Я хочу, чтобы эта же переменная содержала мой domain\username
при локальном запуске или, по крайней мере, чтобы установить его, когда я запускаю встроенный сервер PHP на localhost.
Как я могу настроить 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"
Других решений пока нет …