在servlet / JSP中获取Windows客户端登录用户名

时间:2016-06-16 08:51:33

标签: java jsp servlets

我正在尝试获取Windows用户名的一个servlet。我收到了正确的主机名但无法为不同的计算机获取正确的用户名。我试图在我的机器中部署该servlet并将URL分享给不同的人,当他们访问该URL时,我得到的是我的机器用户名(windows),而不是其他人。 我试过以下代码:

String userName = new com.sun.security.auth.module.NTSystem().getName();

String userName = System.getProperty(“username”);

System.getProperty("user.name");

在我的servlet中,我正在尝试检查它,我正在将我的URL分享给不同的人,但我总是得到相同的用户名,就像它是我的用户名,但主机名是正确的。

你能建议我吗。

1 个答案:

答案 0 :(得分:-1)

更新:

正如BalusC先生指出的那样,这只适用于开发阶段的本地机器。像JavaScript这样的客户端语言无法执行此类安全风险任务。当您部署此代码/项目时,

System.getenv().get("USERNAME");

不会定位客户端的计算机。它将针对服务器系统。 Proof Here.

更新前:

我对此进行了测试,并且有效。

System.getenv().get("USERNAME")

// Servlet
yourPrintWriter.println(System.getenv().get("USERNAME") + " is the username.");

source是Dragos Roban的最后一个答案