Что я пытаюсь сделать:
Создайте домашнюю страницу в интрасети нашей компании, которая автоматически захватывает имя пользователя Windows, вошедшего в систему. человек, просматривающий страницу без , человеку, которому предлагается ввести эти учетные данные при загрузке страницы.
В настоящее время я просто хочу, чтобы он получил локальное имя пользователя, поскольку пройдет некоторое время, прежде чем наши ИТ-специалисты получат настройку домена. Например, прямо сейчас я бы хотел, чтобы он захватил "(Имя ПК) \ windows.user.name" без каких-либо запросов.
Среда:
Apache 2.2.21 в Windows 7 x64 (будет в CentOS, когда он будет запущен в производство).
PHP 5.3.8 (VC9-ZTS).
Internet Explorer 9.0.8x и Firefox 6.0.2 (о Chrome мы поговорим позже).
Текущая тестовая страница - это просто PHP-скрипт, вызывающий print_r ($ _SERVER).
Для простоты: каталог, в котором я это тестирую, не является VirtualHost.
Шаги, которые я предпринял до сих пор:
Загрузил mod_sspi_1.0.4-2.2.2 из SourceForge и извлек mod_auth_sspi.so в каталог модулей Apache.
Добавлено объявление модуля:
LoadModule sspi_auth_module modules / mod_auth_sspi.so
Добавлено определение каталога:
AllowOverride None Опции Нет Заказать разрешить, запретить Разрешить от всех
AuthName «Моя интрасеть»
AuthType SSPI
SSPIAuth включен
SSPIA Авторитет Выкл.
требовать действующего пользователя
Включите встроенную аутентификацию в Firefox, перейдя в about: config и установив network.automatic-ntlm-auth.trusted-uris на абсолютный путь URL-адреса сценария PHP, а затем перезапустив Firefox.
Я еще не проделал аналогичный шаг в IE, но сделаю, как только Firefox заработает как наш основной поддерживаемый браузер внутри.
Перезапустил Apache и попытался загрузить тестовый сценарий PHP.
Результат:
Устранение неполадок на данный момент:
Я пробовал циклически перебрать различные параметры SSPI, такие как включение / выключение авторизации и многое другое. Нет эффекта.
Запрос больше не появляется, если я удалю "require valid-user", но тогда имя пользователя также не передается (оно не NULL; просто не устанавливается в периоде массива).
Если я нажимаю «Отмена» в приглашении, я получаю стандартную страницу «Требуется аутентификация».
Если я введу неверное имя пользователя или правильное имя пользователя, но с неправильным паролем, страница загрузится, но имя пользователя будет «(Имя ПК) \ Гость».
Если я введу правильное имя пользователя / пароль, то имя пользователя будет отображаться вместо Гость.
Как только я ввожу имя пользователя / пароль в IE или Firefox, браузер запоминает это имя пользователя при последующих загрузках страницы, пока я не очищу кеш сохраненных паролей или не перезапущу браузер.
Последние 3 часа или около того я гуглил и гадал наугад. Нулевой успех. Я нашел несколько отдельных сообщений на форуме людей, задающих этот вопрос, но либо они остались без ответа, либо предлагали решения, которые я уже безуспешно пробовал.
И снова я хочу, чтобы страница загружалась БЕЗ каких-либо запросов и отображала текущее имя пользователя Windows в выводе массива $ _SERVER.
Насколько я понимаю, это либо: проблема конфигурации Windows, проблема конфигурации Apache или проблема конфигурации браузера. Кроме этого, у меня только что закончились идеи.
Буду очень благодарен за любую помощь, которую вы можете предложить. Спасибо!
- Крис