我目前正在编写一个Java应用程序,用于与ActiveDirectory验证的Windows计算机。应用程序基本上只需要知道用户的名称和主机名。我知道有在Windows中检索登录用户的名称和主机名称
System.getProperty("user.name")
和
java.net.InetAddress.getLocalHost().getHostName()
但我不知道阉System.getProperty( “user.name”)将与Windows上运行的虚拟机正常工作(我搜索谷歌,并发现很多线程说,它可能可能不适用于Windows,因为它可能会返回不同的东西,取决于环境变量 (我目前无法测试它[我运行的Ubuntu和一个rchLinux])。
所以,我想知道是否有更好更安全的方法来处理这个问题,并偶然发现NTSystem。 但是NTSystem似乎并没有在Linux上使用(我用它来开发),我认为这是因为调用了本地windows代码。
因此,我的问题是:“是否有一种安全的方式来检索Windows中登录的用户名,如果是 - 您将如何实现?”
user.name应该与平台无关,但运行一个测试程序并亲自查看。 – akarnokd 2009-07-16 08:40:18
但是任何人都可以通过-Duser.name = XYZ覆盖它,所以它本质上是不安全的 – 2009-07-16 08:47:08