我目前正在编写一个 Java 应用程序,以与通过 ActiveDirectory 进行身份验证的 Windows 机器一起使用。应用程序基本上只需要知道用户名和主机名。我知道有
System.getProperty("user.name")
和
java.net.InetAddress.getLocalHost().getHostName()
但我不确定 System.getProperty("user.name") 是否会在 Windows 上运行的 VM 上正常运行(我搜索了谷歌并发现很多线程说它可能不适用于 Windows,因为它可能会返回不同的东西,取决于环境变量(我目前无法测试它[我正在运行 ubuntu 和 archLinux])。
所以,我想知道是否有更好、更安全的方法来处理这个问题并偶然发现了NTSystem。但是 NTSystem 似乎在 Linux(我用于开发)上不可用,我认为这是由于调用了本机 Windows 代码。
因此,我的问题是:“是否有一种安全的方法可以在 Windows 中检索登录用户的名称,如果是,您将如何实现?”