我需要检索当前登录的 Windows 用户访问我的内部网页面时的用户名。我尝试使用 Windows Server 2008 上的 SSPI(mod_auth_sspi.so) 和 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 环境变量来获取环境变量中的用户 ID。我搜索了同一个论坛和其他论坛,他们都这样做了,而且似乎有效。我遗漏了什么吗?非常感谢任何帮助。
谢谢
答案1
通过添加选项,它对我来说有效
FollowSymLinks ExecCGI 命令允许、拒绝 允许所有
在目录指令中。我从另一个目录位置引用了原始文件。