|
查看: 1435|回复: 13
|
PHP 如何取得当前 Windows 登入用户?
[复制链接]
|
|
|
如题,有没有办法用 PHP 取得当前 Windows 登入用户?
我试过很多方法,可是都不成功。
网络上对于这方面的文章又少。。
希望有高手指点迷津~~ |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-7-2008 12:48 PM
|
显示全部楼层
简单举个例子:
我的电脑有两个 window user:
user01 和 user02,还有 default 的 administrator。
如果是当前电脑的 logon user 是 user01,就显示当前 Windows 用户:user01
看似简单,可是实践起来,好难啊。。哈哈。。
找不到相关的文章可以参考。。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-7-2008 12:51 PM
|
显示全部楼层
我覺得不太可能.
基本上, PHP 是建立在 Web 環境裡, 簡單來說就是 Web Application. 所以它所能得到的任何資訊都是在 Web (IIS) 的環境裡面.
你可以用 print_r($GLOBALS) 來得到所有的環境變數, 不過我相信你還是看不到任何跟當前登入用戶有關的資訊. 相信這也和系統的安全設計有關, 如果在 Web Application 裡可以那到系統的重要資訊, 那實在是太危險了. |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-7-2008 12:59 PM
|
显示全部楼层
回复 3# 依祈 的帖子
嗯,我想也是。。
基本上会有这个想法是因为我公司的局内网的登入程序。
目前的登入验证是用 PHP 连接 LDAP 去 Active Directory 进行验证。
我的想法是,用户登入 Windows 的同时也登入公司局内网,不用登入两次。
好像 .NET Passport 那样。。
哈哈,想法好像想到有点完美。。  |
|
|
|
|
|
|
|
|
|
|
发表于 2-7-2008 01:33 PM
|
显示全部楼层
回复 4# 皇帝陛下的玉米 的帖子
|
我觉得之所以不能,是因为我们无法拿到当前的username和password login information,关键是有什么window API可以这么做? |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-7-2008 02:12 PM
|
显示全部楼层
回复 5# ikanyuchiew 的帖子
我用 Microsoft Visual C++ 可以取得当前 Window 登入用户。
只是 PHP 暂时还不知道方法,哈哈。。
寻找中。 |
|
|
|
|
|
|
|
|
|
|
发表于 2-7-2008 02:42 PM
|
显示全部楼层
回复 6# 皇帝陛下的玉米 的帖子
hmm,如果是user name我不觉得奇怪,难道password也可以吗?就算拿到了不是一连串的encrypted string吗?
可以看看你的vc++ source吗?  |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 2-7-2008 03:16 PM
|
显示全部楼层
回复 7# ikanyuchiew 的帖子
不,password 不行,那是 link AD 的。
我只能拿到 current window login user。
登入用 SSPI,不需要知道 password。
我要用 PHP 知道当前 login user 是有别的用途。。哈哈。。
在自己写的局内网内当 id 做 user access control。 |
|
|
|
|
|
|
|
|
|
|
发表于 3-7-2008 01:03 PM
|
显示全部楼层
可以,但是有以下條件:
1. IE Only, firefox 不行
2. 如果是 IIS 需要更改設定, 任何人都需要 domain logon 才能 surf the web page
3. Apache 則需要 install module, 同樣的, 任何人都需要 domain logon
4. 需要加強 session timeout, 否則很容易造成漏洞. |
|
|
|
|
|
|
|
|
|
|
发表于 3-7-2008 02:29 PM
|
显示全部楼层
原帖由 皇帝陛下的玉米 于 2-7-2008 12:59 PM 发表 
基本上会有这个想法是因为我公司的局内网的登入程序。
目前的登入验证是用 PHP 连接 LDAP 去 Active Directory 进行验证。
我的想法是,用户登入 Windows 的同时也登入公司局内网,不用登入两次。
好像 .NET Passport 那样。。
其實你所指的就稱為 SSO (Single Sign On).
要做到這樣, 不是不可能, 你可以往 NTLM 這個線索找找.
提示: 到 Google 打 PHP 和 NTLM 搜尋.  |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 3-7-2008 04:13 PM
|
显示全部楼层
回复 10# 依祈 的帖子
谢谢你,SSO 和 NTLM 这两个关键词让我找到很多相关资料~
感谢~ |
|
|
|
|
|
|
|
|
|
|
发表于 3-7-2008 05:15 PM
|
显示全部楼层
IE = 写Active-X
FF = 写firefox extension
就是这么简单  |
|
|
|
|
|
|
|
|
|
|
发表于 3-7-2008 05:16 PM
|
显示全部楼层
IE = 写Active-X
FF = 写firefox extension
就是这么简单  |
|
|
|
|
|
|
|
|
|
|

楼主 |
发表于 8-7-2008 03:53 PM
|
显示全部楼层
回复 13# Aoiro 的帖子
感谢你的意见,可惜不实际。  |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|