繁体   English   中英

从Java应用程序中获取用户名(Windows)

[英]Fetching user name (windows) from a java application

问题:

我正在使用以下凭据登录虚拟机(RDC):

用户是称为teldept的域组的一部分

用户:147852通过:helloworld

当我尝试从Java应用程序获取用户详细信息时,它给了我:147852

但是,当我单击顶部的开始菜单时,我可以看到我的姓名显示。

怎么做? 我想从Java应用程序访问此名称

我使用以下代码段:

System.getProperty(“ user.name”);

上面的代码段给我的一切都是正确的,作为aper oracle文档。 我以ID:147852和更高的代码段登录,给了我14852,但有些在Windows中以我的名字映射了该ID:147852,所以仅在XP的开始菜单中,我才显示我的名字而不是147852。我们需要知道如何在ID和名称之间完成此映射。 我猜想这与Domain或某些我不擅长的网络逻辑有关。

XP的开始菜单上显示的名称不是登录名。 它是与登录名对应的全名。 不确定您的登录名是本地登录名还是域登录名。 如果是本地登录名,请转到“管理工具”->“计算机管理”->“用户和组”->“此处”,以您的用户名(147852)为准,您会找到一个全名。 如果您的登录名是域登录名,则可以类似地在Active Directory中查找您的名称-或在其他位置搜索它。

这是特定于操作系统的,Java找不到。 您将需要使用JNI和Windows API来执行此操作-根据用户类型调用GetUserNameExNetUserGetInfo

如果只想获取登录名(147852),则调用com.sun.security.auth.module.NTSystem().getName比使用System.getProperty("user.name")更好com.sun.security.auth.module.NTSystem().getName

这个SO问题中 ,您可以使用:

System.getProperty("user.name");

返回当前登录的用户。 这将返回用户名字符串。 我相信这就是您要的内容,但是您的问题还不清楚。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM