Я работаю над внутренним веб-приложением на PHP. Я пытаюсь использовать учетные данные для входа в Windows NT для входа в приложение. Проблема, возникшая здесь, заключается в том, как получить имя пользователя удаленных пользователей Windows? Я хочу получить имя пользователя, а затем проверить различные группы LDAP, чтобы я мог направить их на соответствующие страницы в моем приложении.
Я до сих пор пробовал
<?php echo $_SERVER['REMOTE_USER']; echo $_SERVER['PHP_AUTH_USER']; ?>
Оба они возвращают пустые значения.
ОБНОВЛЕНИЕ: Использование $ _SERVER ['REMOTE_ADDR'] Я могу получить IP-адрес компьютера. В любом случае я могу получить имя пользователя / пользователя (что-то уникальное) и использовать его для сравнения с группами LDAP? Я хотел бы сделать это, когда они войдут на главную страницу веб-сайта и хранят сеанс, а затем используют переменную сеанса на всем веб-сайте.
Не уверен, что вам все еще нужна помощь, но недавно мне пришлось создавать код для автоматического входа пользователей интранета на наш сайт, используя проверку подлинности Windows, которая запускается с использованием IIS. При использовании проверки подлинности Windows и ISS для того, чтобы вошедший в систему пользователь вошел в первую очередь, убедитесь, что включена проверка подлинности Windows и анонимность отключена.
$_SERVER['AUTH_USER']; // obtain the LanID of the logged in user.
Если вам нужна дополнительная информация, дайте мне знать.
Сначала необходимо отправить заголовки NTLM-Authenticate. После этого должен быть правильный пользователь в $ _SERVER-Vars
header('WWW-Authenticate: NTLM'); echo $_SERVER['AUTH_USER'];
AFAIK это работает только в InternetExporer – браузерах