如何从Web应用程序跟踪用户Windows登录名?如何从java web应用程序跟踪用户Windows登录名
我尝试了一些Java中的现有方法,但它显示了服务器的Windows登录名。
userAgent = request.getHeader("User-Agent");
如何从Web应用程序跟踪用户Windows登录名?如何从java web应用程序跟踪用户Windows登录名
我尝试了一些Java中的现有方法,但它显示了服务器的Windows登录名。
userAgent = request.getHeader("User-Agent");
您可以通过实现Kerberos或NTML身份验证,那么你可以得到使用request.getRemoteUser()
我推荐的Kerberos的Windows用户名达到您的要求。要添加Kerberos身份验证,请检查SPNEGO Filter。它在大多数Servlet容器上。
一般互联网客户端的简短答案是,你不能。 Web服务器不会从客户端的Web浏览器获取任何信息以允许其查看用户名(这样做会造成安全问题)。
运行在用户浏览器上的Javascript也无法计算出用户名。这可能是使用浏览器扩展的可能性,但这是一种超越简单解决方案的公平方式,可以很好地进入“糟糕的想法”领域。
如果你正在做内部网的东西,你的用户在同一个域或网络上,你可以尝试让服务器进行系统调用或使用本地操作系统工具来查明。例如:
wmic.exe /node:192.168.33.2 ComputerSystem Get UserName
注意这样的事情只会工作,如果你有权限(如域管理员可能)来查询其他机器。对于一般的互联网资料,这根本不起作用。
最终,只有当您的Web服务器和客户机共享相同的身份验证机制(例如samba,NTLM,Kerberos等)时才能实现。
如果可能的话,你不认为这会是一个隐私侵犯? – Codebender