[英]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来执行此操作-根据用户类型调用GetUserNameEx
或NetUserGetInfo
。
如果只想获取登录名(147852),则调用com.sun.security.auth.module.NTSystem().getName
比使用System.getProperty("user.name")
更好com.sun.security.auth.module.NTSystem().getName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.