佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

搜索
查看: 1435|回复: 13

PHP 如何取得当前 Windows 登入用户?

[复制链接]
发表于 2-7-2008 12:39 PM | 显示全部楼层 |阅读模式
如题,有没有办法用 PHP 取得当前 Windows 登入用户?
我试过很多方法,可是都不成功。
网络上对于这方面的文章又少。。

希望有高手指点迷津~~
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 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 暂时还不知道方法,哈哈。。
寻找中。
回复

使用道具 举报

Follow Us
发表于 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。
回复

使用道具 举报


ADVERTISEMENT

发表于 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 的帖子

感谢你的意见,可惜不实际。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2026 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 3-5-2026 03:54 PM , Processed in 0.069227 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表