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

How to get Username of a client, login to client machine in JS or php?

本文关键字:客户端 JS php 机器 登录 何获取 获取 用户      更新时间:2023-09-26

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

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

对于可以控制客户端机器的intranet站点/应用程序,您可以使用在系统启动时运行的一些脚本/应用程序来读取用户名并将其存储为cookie。你可以从你的网站上读取cookie。

cookie的存储方式因浏览器而异。例如,firefox3+使用一个具有文档格式的sqlite数据库(有关更多信息,请参阅本文)。您必须确保在访问cookie时浏览器没有运行。

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

我不知道有什么纯粹的mac。(最新的)Windows系统称为Kerberos,由Mac上的Firefox支持,如下所述:http://www.cgl.ucsf.edu/Security/CGLAUTH/CGLAUTH.html

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

这个问题是由一个在linux上成功完成的人提出的,所以这应该是一个很好的起点