2016-03-08 114 views
0

我正在编写一个Web应用程序,其中有一些JDBC操作要根据系统用户名完成。目前我正在使用下面的代码来获取详细信息。获取登录用户的详细信息

String userID = System.getProperty("user.name"); 

    public String getUserIDDetails() throws Exception { 
     System.out.println(userID); 
     return userID; 
    } 

而且我已经试过

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

但这里的问题是,当我部署此Tomcat上,并告诉我collegue使用,http://mySystemIPAddress:portNumber/ProjectName,在控制台中运行它,它打印我的系统名称,而不是系统从哪里访问此URL(目前是我的同事的)。上述两种方法都没有奏效。

请让我知道如何解决此问题并获取正确的系统名称。

感谢

+0

您可能需要访问某些客户端信息? System.getProperties()似乎是服务器信息 – AK47

+0

嗨@Alan,正好,但我不知道我该如何做到这一点:-( – user3872094

+0

http://stackoverflow.com/a/9518490/2242903 –

回答

0

你正在运行到的问题是,你正在展示的代码是一个工作站作为用户(你在这种情况下)上运行。然后,浏览器中的用户正在不同的工作站上运行。理论上,您需要在浏览器上使用一些JavaScript来确定谁登录到浏览器工作站。然而,quick search似乎表明这是困难的和不可能的。

通常,对于基于Web的应用程序,您希望用户登录到您的Web应用程序。然后,您可以使用Windows域来验证用户名/密码是否正确。还有很多其他的方法可以做到这一点,但是你恐怕目前的方法需要改变。

相关问题