我正在尝试获取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分享给不同的人,但我总是得到相同的用户名,就像它是我的用户名,但主机名是正确的。
你能建议我吗。答案 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的最后一个答案