Мне нужно получить имя пользователя Windows, вошедшего в систему в настоящее время, когда он обращается к моей странице интрасети. Я пытаюсь аутентифицировать свою веб-страницу с помощью SSPI (mod_auth_sspi.so) в Windows Server 2008 с Apache 2.2. Я внес следующие изменения в файл httpd.conf и добавил свой сайт интрасети в список надежных сайтов в настройках браузера. Моя веб-страница находится на Perl, и я использую CGI.pm. Я пытаюсь получить имя пользователя через $ cgi-> user_name () и $ cgi-> remote_user (), а также проверяю переменные REMOTE_USER и AUTH_USER cgi ENV, чтобы получить имя пользователя.
<IfModule !mod_auth_sspi.c>
LoadModule sspi_auth_module modules/mod_auth_sspi.so
</IfModule>
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/TestWeb/">
<Files Test.pl>
AuthName "TestWeb"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic Off
Require valid-user
SSPIDomain domain name
</Files>
</Directory>
После изменений я перезапустил apache. Я не вижу переменную среды cgi для получения идентификатора пользователя в переменных среды. Я искал тот же форум и другие, и это то, что они все сделали и, кажется, работают. Я что-то упускаю? Ценю любую помощь.
Спасибо
У меня это сработало, включив параметры
FollowSymLinks ExecCGI Order разрешить, запретить Allow from all
в директиве каталога. У меня были ссылки на исходные файлы из другого каталога.