一個需求: 在域控范圍獲得訪問用戶的計算機名.方法:
1.測試軟件環境: XAMPP Control Panel V3.2.1 , Apache version 2.4.7
2.Apache 2.2 使用 mod_auth_sspi.so 模塊,Apache 2.4 以后此模塊不再適用,使用mod_authnz_sspi 模塊。
二、安裝
1.下載mod_authnz_sspi 模塊。(x86 for 32bit apache, x64 for 64 bit apche ) Download the module from here
https://www.apachehaus.net/modules/mod_authnz_sspi/
2.將模塊拷貝到apache 安裝目錄中的 modules文件中
3. 確保如下兩個模塊可用。
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
4.配置Apache的httpd. conf文件
在LoadModule 語句的最后添加加載模塊語句
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
在httpd.conf文件最后添加:
<Directory "D:/xampp/htdocs"> # 指定網站根目錄
AllowOverride None
Options None
AuthName "My Intranet" (這個名字可以隨便設置)
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
require valid-user
require user "NT AUTHORITY\ANONYMOUS LOGON" denied
</Directory>
5. 保存conf 文件,重啟Apache
查看模塊是否加載: phpinfo();
Check the Apache Version
Httpd -v
PHP 實現代碼:
$username = $_SERVER['PHP_AUTH_USER'];
echo $_SERVER['PHP_AUTH_USER'];
或:
echo "<br>".$_SERVER['REMOTE_USER'];
$username = substr(strrchr($username, '\\'), 1);
echo "<br>".$username;
