Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在servlet/JSP中获取windows客户端登录用户名_Java_Jsp_Servlets - Fatal编程技术网

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

Java 在servlet/JSP中获取windows客户端登录用户名,java,jsp,servlets,Java,Jsp,Servlets,我有一个servlet,我正试图获取windows用户名。我正在获取正确的主机名,但无法获取不同计算机的正确用户名。我曾尝试在我的机器中部署该servlet,并将URL共享给不同的人,当他们点击该URL时,我得到的是我的机器用户名(windows),而不是其他人。 我已尝试使用以下代码: String userName = new com.sun.security.auth.module.NTSystem().getName(); 及 及 在我的servlet中,我试图检查它,我将我的URL共

我有一个servlet,我正试图获取windows用户名。我正在获取正确的主机名,但无法获取不同计算机的正确用户名。我曾尝试在我的机器中部署该servlet,并将URL共享给不同的人,当他们点击该URL时,我得到的是我的机器用户名(windows),而不是其他人。 我已尝试使用以下代码:

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

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


你能给我提个建议吗。

更新:

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

System.getenv().get("USERNAME");
不会以客户端的计算机为目标。它将以服务器系统为目标

更新前:

我测试了这个,它成功了

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

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

是Dragos Roban的最后一个答案

您可以使用编辑器中的“代码格式”按钮对代码进行格式设置,或缩进四个空格。您好,我也尝试了以下代码。它也不起作用。字符串username=Advapi32Util.getUserName();我的设想是,我把我的Web应用程序部署在一个服务器BOX-1上,并用Admin 1登录。现在,当我使用用户名为USER1的登录系统访问此应用程序时,我需要以USER1的身份获取值。当另一个用户使用USER2登录到同一个应用程序时,我需要USER2被捕获。请注意,JSP/Servlet代码在webserver中运行,而不是在webbrowser中运行。显然,只有当webserver和webbrowser同时在同一台机器上运行时,这才“起作用”,而这通常只发生在本地开发期间。web开发人员应该更清楚这一点。基本上,我希望在同一局域网的窗口中显示所有登录信息。这应该由我在Servlet中编写的程序来跟踪。尝试了上面共享的所有逻辑。但它总是跟踪我的窗口用户名。但是ip是不同的假设我会要求其他人点击我共享的相同url。不确定问题出在哪里,但是,如果我们使用客户端javascript,这根本不可能。如果可能的话,这将是一个巨大的安全漏洞。那么,我认为javascript根本做不到这一点。正确的Balu。但不确定如何实施。因为我尝试了一些方法,但找不到解决方法。
System.getenv().get("USERNAME");
System.getenv().get("USERNAME")

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