Ich schreibe gerade eine Java-Anwendung für die Verwendung mit einer Windows-Maschine mit einem ActiveDirectory Authhed. Die Anwendung muss im Grunde nur den Namen und den Hostnamen des Benutzers kennen. Ich weiß, esAbrufen des angemeldeten Benutzernamens und Hostnamens in Windows
System.getProperty("user.name")
und
java.net.InetAddress.getLocalHost().getHostName()
sind, aber ich bin nicht sicher, ob System.getProperty ("user.name") funktioniert korrekt mit der VM läuft auf Windows (I Gesucht google und fand viele Threads sagen es könnte nicht mit Windows arbeiten, da es etwas anders, abhängig von der Umgebungsvariablen (und ich bin derzeit nicht in der Lage, es zu testen [Ich bin mit Ubuntu und a rchLinux]).
Also fragte ich mich, ob es einen besseren und sichereren Weg gibt, damit umzugehen und stolperte über NTSystem. Aber NTSystem scheint unter Linux nicht verfügbar zu sein (was ich für die Entwicklung verwende), was - denke ich - auf dem nativen Windows-Code beruht.
Meine Frage wäre also: "Gibt es eine sichere Möglichkeit, den Namen des eingeloggten Benutzers in Windows abzurufen und wenn ja - wie würden Sie das erreichen?"
user.name sollte plattformunabhängig sein, aber führen Sie ein Testprogramm aus und sehen Sie es sich selbst an. – akarnokd
Aber jeder kann es über -Duser.name = XYZ überschreiben, so dass es inhärent unsicher ist –
Meinst du "Linux als meine Entwicklungsumgebung zu verwenden", wenn du "in Linux" sagst? Siehe meine Antwort unten für einen Vorschlag. –