Java 如何检索用户登录id
我需要检索登录到服务器的用户的登录ID。我想用Java来做。我如何才能做到这一点?这取决于平台。 你说的是什么类型的服务器 下面是一些返回运行应用程序的用户名称的内容。 我在上面找到了这段代码Java 如何检索用户登录id,java,Java,我需要检索登录到服务器的用户的登录ID。我想用Java来做。我如何才能做到这一点?这取决于平台。 你说的是什么类型的服务器 下面是一些返回运行应用程序的用户名称的内容。 我在上面找到了这段代码 试试看{ 字符串loginAppName=“GetLoginNameUnix”; //如果应用程序在NT而不是Unix上运行,请使用此名称 loginAppName=“GetLoginName”; //创建登录上下文 LoginContext lc=新的LoginContext(loginAppName,
试试看{
字符串loginAppName=“GetLoginNameUnix”;
//如果应用程序在NT而不是Unix上运行,请使用此名称
loginAppName=“GetLoginName”;
//创建登录上下文
LoginContext lc=新的LoginContext(loginAppName,
新的com.sun.security.auth.callback.TextCallbackHandler());
//检索有关已登录用户的信息
lc.login();
//获取经过身份验证的主题
Subject-Subject=lc.getSubject();
//获取主题主体
主体主体[]=(主体[])subject.getPrincipals().toArray(新主体[0]);
对于(int i=0;i您可以在以下环境中找到它:
String login = System.getProperty("user.name");
但是安全管理器可能会阻止这种情况(例如,当从小程序调用时)!如果您转储系统.properties
,您将发现一个名为user.name
的属性。这或多或少应该是启动JDK进程的OS用户
这里有一个代码片段可以帮助您
Properties props = System.getProperties();
Enumeration e = props.propertyNames();
while( e.hasMoreElements() ){
Object key = e.nextElement();
Object val = props.getProperty( key.toString() );
System.out.println( "key:"+ key +" val:"+ val );
}
您应该添加您正在使用的服务器类型,以及可能的身份验证类型。
Properties props = System.getProperties();
Enumeration e = props.propertyNames();
while( e.hasMoreElements() ){
Object key = e.nextElement();
Object val = props.getProperty( key.toString() );
System.out.println( "key:"+ key +" val:"+ val );
}