我目前正在編寫一個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