2009-04-07 19 views

Respuesta

12
System.getProperty("user.name") 
+0

Muchas gracias por su ayuda. – VansFannel

+0

¿Puedo usar esto en una aplicación web Java? – VansFannel

+5

Esto es muy fácil de falsificar. -Duser.name = Administrator –

12

Si necesita nombre de dominio, puede utilizar esto:

com.sun.security.auth.module.NTSystem NTSystem = new 
      com.sun.security.auth.module.NTSystem(); 
    System.out.println(NTSystem.getName()); 
    System.out.println(NTSystem.getDomain()); 

adiós.

+0

¿Puedo usar esto en una aplicación web Java? – VansFannel

+0

No. Esto es para una aplicación Java (SO Windows). – RealHowTo

+0

Este es mejor que el ejemplo System.getProperty ("user.name"), porque es muy fácil engañar a la JVM para que piense que hay un usuario diferente conectado. – Azder

0

Nota: System.getProperty ("nombre.usuario") solo funcionará si el usuario inicia la aplicación. Si el programa lo ejecuta System o una aplicación como LANDesk, el usuario aparecerá como "SYSTEM" (bajo el dominio "NT AUTHORITY").

En cuyo caso, la segunda solución que use NTSystem devolverá los resultados correctos.

0

Me di cuenta de que el topicstarter pregunta luego en los comentarios si puede usarlo en una aplicación web Java que fue respondida con "no" cada vez. Esto es cierto si ejecuta el código particular en el lado del servidor, pero no si lo ejecuta en el lado del cliente en el sabor de un applet o jnlp que está incrustado en la página jsp/html solicitada. Sin embargo, debe enviar la información necesaria al lado del servidor después.

Cuestiones relacionadas