如何从java Web应用程序跟踪用户的Windows登录名

时间:2015-08-08 06:52:48

标签: java windows ip web-hosting

如何从Web应用程序跟踪用户的Windows登录名?

我尝试使用Java中的一些现有方法,但它显示了服务器的Windows登录名。

 userAgent = request.getHeader("User-Agent"); 

2 个答案:

答案 0 :(得分:1)

普通互联网客户的简短回答是,您无法做到。 Web服务器不从客户端的Web浏览器获取任何信息以允许它查看用户名(这样做会出现安全问题)。

在用户浏览器上运行的Javascript也无法计算出用户名。可能有可能使用浏览器扩展程序,但您可以通过一个简单的解决方案,并深入了解“坏主意”#34;境。

如果您正在进行内部网,那么您的用户位于同一个域或网络中,您可能会尝试让服务器进行系统调用或使用本地操作系统工具进行查找。例如:

wmic.exe /node:192.168.33.2 ComputerSystem Get UserName

请注意,如果您具有查询其他计算机的权限(例如,可能是域管理员),则此类内容才会起作用。对于一般的网络内容,这根本不起作用。

最终,只有当您的Web服务器和客户端计算机共享相同的身份验证机制(即samba,NTLM,Kerberos等)时,才能实现此目的。

答案 1 :(得分:0)

您可以通过实施Kerberos或NTML身份验证来实现您的要求,然后您可以使用request.getRemoteUser()获取Windows用户名

我推荐Kerberos。要添加Kerberos身份验证,请检查SPNEGO Filter。它在大多数Servlet容器上。