我将在服务器中托管我的应用程序。我只想获取登录我的应用程序的用户的NT ID。如果有人回答,请分享?
system.getremoteUser()
和system.getProperty
将返回托管计算机名称。
答案 0 :(得分:1)
如果您具体关于Java
中的NT ID提取,这可能有效
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
System.out.println(NTSystem.getDomain());
System.out.println(NTSystem.getUserSID());
但对于具有NTLM身份验证的Web应用程序上下文,您应该将NTLM(Windows)用户作为您的应用程序用户(这是一般情况)。
在通过NTLM对用户进行身份验证时,最好在上下文中查询NTLMRealm(在Tomcat中)或存储用户身份(SID等)(这可以是基于会话或特定的自定义服务器端实现)。现在使用此上下文来检索登录的用户(SID,GroupID等)的NTLM属性。