代码之家  ›  专栏  ›  技术社区  ›  Mahmoud Saleh

是否可以在java web应用程序中获取客户端操作系统用户名?

  •  2
  • Mahmoud Saleh  · 技术社区  · 12 年前

    我有一个托管在本地服务器上的网站,这个网站由几个本地用户访问,我想当他们访问特定页面时,让客户端/用户的操作系统用户访问这个页面,当我尝试java代码时:

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

    它获取的是服务器的操作系统用户名,而不是客户端的用户名。

    请告诉我如何做到这一点,谢谢。

    3 回复  |  直到 12 年前
        1
  •  0
  •   user2826111    12 年前

    创建一个由小程序组成的jar,小程序可以通过使用 System.getProperty("user.name") 在将当前用户名发送到服务器上的servlet的同一个applet中编写httpclient。

    1. 调用当前用户方法是applet

    2. 为httpclient分配用户名

    3. 使用httpclient将用户名发送到servlet

    你的程序给出的是服务器的用户名,而不是客户端的用户名,这就是为什么你必须使用客户端技术,比如驻留在客户端机器中的applet。

        2
  •  0
  •   Sorter    12 年前
    String userAgent = request.getHeader("User-Agent");
    

    您可以从该网站获取所有用户代理值的完整列表, http://www.user-agents.org/

    Javascript方式

    var OSName="Unknown OS";
    if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
    if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
    if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
    if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";
    

    并将OSName变量发送回服务器。

        3
  •  0
  •   Mahmoud Saleh    12 年前

    使用java方法 request.getRemoteUser() 成功了。