如何從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