Как использовать встроенный сервер PHP с проверкой подлинности Windows (NTLM) для заполнения $ _SERVER [& quot; LOGON_USER & quot;]?

У меня есть сценарии, которые используют $_SERVER["LOGON_USER"] который получается на моих серверах через настройки аутентификации IIS. Я хочу, чтобы эта же переменная содержала мой domain\username при локальном запуске или, по крайней мере, чтобы установить его, когда я запускаю встроенный сервер PHP на localhost.

Как я могу настроить PHP на своем компьютере, чтобы получать и заполнять эту переменную так же, как при работе через IIS?

PS: я видел этот вопрос, но ответ адреса $_ENVне $_SERVER,

0

Решение

Это обходной путь, если у кого-то есть лучшее / правильное решение (т. Е. Включение 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"
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]