首页 > 代码库 > PHP 获得域控内用户的计算机登录名
PHP 获得域控内用户的计算机登录名
一个需求: 在域控范围获得访问用户的计算机名.方法:
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;