Как узнать имя пользователя компьютера php

Обновлено: 07.07.2024

У меня есть веб-приложение PHP в интрасети, которое может извлекать IP-адрес и имя хоста текущего пользователя на этой странице, но мне было интересно, есть ли способ получить/извлечь их имя пользователя Active Directory/Windows. Возможно ли это?

Проверьте переменную запроса AUTH_USER . Это будет пустым, если ваше веб-приложение разрешает анонимный доступ, но если ваш сервер использует базовую или интегрированную проверку подлинности Windows, он будет содержать имя пользователя аутентифицированного пользователя.

В домене Active Directory, если ваши клиенты работают с Internet Explorer, и ваши разрешения на веб-сервер/файловую систему настроены правильно, IE будет тихо отправлять свои учетные данные домена на ваш сервер, а AUTH_USER будет MYDOMAIN\user.name без того, чтобы пользователи, для явного входа в ваше веб-приложение.

только IE пропускает ваши учетные данные, другие браузеры просто запрашивают, и в этом случае вам просто нужно предоставить свои доменные учетные данные (домен \ имя пользователя и пароль). Если мое приложение выполняет разумные операции: могу ли я доверять переданному AUTH_USER? Клиенты являются частью хорошо управляемой корпоративной интрасети. Кроме AUTH_USER, мне нужно знать, принадлежит ли пользователь определенной группе. Эта информация тоже будет передана? И, наконец, есть ли у вас URL с описанием вашей информации? У меня есть встроенная проверка подлинности Windows, и даже с IE пользователь спрашивает. Я не могу заставить его работать с IIS. Спасибо команда. Но мой случай другой. У меня есть много приложений, размещенных на одном сервере. Поэтому я хотел получить учетные данные AD с компьютера локального пользователя только для одного приложения. Если я включу Аутентификацию AD и отключу анонимный доступ, все другие приложения также будут заполнены для учетных данных AD. Поэтому, пожалуйста, предложите, что я могу сделать только для индивидуального применения.

Я использовал это, чтобы получить мой пользователь и домен:

$user вернет значение, подобное: DOMAIN\username в нашей сети, а затем это просто случай удаления DOMAIN\ из строки.

Это работает в IE, FF, Chrome, Safari (проверено).

У меня php работает на IIS, и для этого сайта включена только аутентификация Windows. У меня нет этой информации. Что я мог перепроверить?

Active Directory [в основном] соответствует стандарту LDAP.

Если вы используете Apache в Windows, вы можете установить mod_auth_sspi из

Информация основана на сеансах, поэтому единый вход (ish) возможен даже в Firefox.

Возможно, вы аутентифицируете пользователя в Apache с mod_auth_kerb, требуя аутентифицированного доступа к некоторым файлам. Я так думаю, что имя пользователя также должно быть доступно в переменных среды PHP где-то. вероятно, лучше для проверки с помощью <?php phpinfo(); ?> после его запуска.

Читайте также: