如何获取客户端的用户名,在JS或php中登录客户端机器?

时间:2013-02-18 09:22:40

标签: php javascript macos

我们有大约10个iMac连接到mac mini服务器。在服务器上启用php和Apache。我正在使用php开发内部网网站。我的要求是获取连接到服务器的客户端的用户名。 $ _SERVER ['REMOTE_USER']不起作用。我不知道为什么。请帮帮我。是否可以编写JS来找到它?它不应该要求用户登录。它应该直接从客户机登录。

3 个答案:

答案 0 :(得分:1)

$_SERVER['REMOTE_USER']将包含用于 HTTP身份验证的用户名。没有合理的方法可以说服浏览器告诉您访问者登录的操作系统用户是什么(您可能对签名的Java小程序运气不错,但我不会打赌)。

答案 1 :(得分:0)

对于您可以控制客户端计算机的Intranet站点/应用程序,您可以使用在系统启动时运行的某些脚本/应用程序,它将读取用户名并将其存储为cookie。您可以从您的网站上阅读该cookie。

如何存储cookie在浏览器之间有所不同。例如,firefox 3+使用带有文档格式的sqlite数据库(有关更多信息,请参阅this post)。您必须确保在访问cookie时浏览器未运行。

答案 2 :(得分:0)

我相信您正在寻找的是单点登录(SSO)。这最常用于连接到域的Windows计算机,允许用户在不输入任何凭据的情况下对Intranet站点进行身份验证(例如,它使用其域凭据)。

我不知道纯mac等价物。 (最近的)Windows系统称为Kerberos,Mac上的Firefox支持,如下所述:http://www.cgl.ucsf.edu/Security/CGLAUTH/CGLAUTH.html

值得注意的是,这需要操作系统,浏览器和网站一起工作。一些问题:firefox(即使在Windows上)不会自动发送登录详细信息,它需要更改配置以包含您要进行身份验证的站点。网站需要能够验证传递给它的凭证的真实性,这通常意味着它需要能够与凭证授权机构(域控制器/ RADIUS / X500服务器等)进行通信。 pesmissions机制需要支持(并配置)允许凭证委派(即允许客户端PC将令牌传递到网站以证明身份)。

This question是有人设法让这个在linux上工作,所以应该是一个很好的起点