您的位置:首页 > 理论基础

PHP 获得域控内用户的计算机登录名

2014-07-08 17:13 169 查看
一个需求: 在域控范围获得访问用户的计算机名.方法:

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: