有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何知道在java应用程序中登录的用户是谁?

我创建了一个java应用程序,需要登录凭据才能访问。我怎么知道哪个用户登录了?有办法知道吗

我不知道他们是否意识到了这个疑问,如果没有,我会尝试更好地解释

-------代码-----------------

private void jBLoginActionPerformed(java.awt.event.ActionEvent evt) {                                        

String sql="select * from logins where username=? and password=? and idTipoLogin=?";
try{
    pst=(PreparedStatement) conexao.prepareStatement(sql);
    pst.setString(1, jTUser.getText());
    pst.setString(2, jPass.getText());
    pst.setString(3, jComboBoxTipoLogin.getSelectedItem().toString());

    rs=pst.executeQuery();
    if(rs.next()){

        String idTipoLogin = rs.getString("idTipoLogin"); 

        if (idTipoLogin.equals("Administrador")) {

            jTTarefasAdmin ah = new jTTarefasAdmin();
            ah.setVisible(true);

        }
         else {
            jTTarefasTecnico eh = new jTTarefasTecnico();
            eh.setVisible(true);

        }
        this.setVisible(false);
        }
    else{
        JOptionPane.showMessageDialog(null, "User Invalid");
          }
        }catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
        }

}

enter image description here

目的是了解登录系统的用户是什么。 由于有几个用户,我想知道登录时具体访问了什么


共 (2) 个答案

  1. # 1 楼答案

    据我所知,你有一个系统对用户进行身份验证,同一个用户可以访问其他系统。在这些其他系统上,你想知道用户是谁

    您可以这样做:一旦用户通过身份验证,创建一个唯一的id并将其放入会话中。然后在每次需要了解用户是否登录时访问会话。对于其他系统,将该唯一id传递给系统,并允许它们为用户查询

    流量: 1.用户登录 2.系统创建一个唯一的id 3.将该id与用户向其他系统发出的每个请求一起移动 4.在其他系统上,允许他们访问身份验证服务器并基于id进行查询

    这需要手动完成很多工作,而且有很多系统可以为您处理这一切

    链接让你开始

    http://en.wikipedia.org/wiki/Single_sign-on

    http://en.wikipedia.org/wiki/Federated_identity

  2. # 2 楼答案

    你可以维护一个登录用户的集合,我认为一个HashMap就足够了

     // This should be a class member
     Map<String, String> loggedInUsers = new HashMap<String, String>();
    
     // Now when user logs in add it to the HashMap
     loggedInUser.put(jTUser.getText(), jTUser.getText());
    
     // When a user logs out remove the user from the Map
     loggedInUser.remove(jTUser.getText());
    

    如果你只是想要一个简单的用户列表,那么你可以将他们存储在ArrayList中

     List<String> loggedInUsers = new ArrayList<String>();
     loggedInUser.add(jTUser.getText());