我正在编写一个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上部署它并告诉我的同事使用http://mySystemIPAddress:portNumber/ProjectName
在控制台中运行它时,它会打印我的系统名称而不是访问此URL的系统(目前是我的同事。以上两种方法均无效。
请告诉我如何解决此问题并获取正确的系统名称。
由于
答案 0 :(得分:0)
您遇到的问题是您显示的代码作为用户在您的工作站上运行(在本例中)。然后,浏览器中的用户正在另一个工作站上运行。理论上,您需要在浏览器上使用一些JavaScript来确定谁登录到浏览器工作站。然而,quick search似乎表明这是在困难和不可能之间。
通常,对于基于Web的应用程序,您希望用户登录您的webapp。然后,您可以使用Windows域作为验证用户名/密码是否正确的方法。还有很多其他的方法可以做到这一点,但你现在的方法需要改变我害怕。