2015-08-08 34 views

回答

0

您可以通過實現Kerberos或NTML身份驗證,那麼你可以得到使用request.getRemoteUser()

我推薦的Kerberos的Windows用戶名達到您的要求。要添加Kerberos身份驗證,請檢查SPNEGO Filter。它在大多數Servlet容器上。

1

一般互聯網客戶端的簡短答案是,你不能。 Web服務器不會從客戶端的Web瀏覽器獲取任何信息以允許其查看用戶名(這樣做會造成安全問題)。

運行在用戶瀏覽器上的Javascript也無法計算出用戶名。這可能是使用瀏覽器擴展的可能性,但這是一種超越簡單解決方案的公平方式,可以很好地進入「糟糕的想法」領域。

如果你正在做內部網的東西,你的用戶在同一個域或網絡上,你可以嘗試讓服務器進行系統調用或使用本地操作系統工具來查明。例如:

wmic.exe /node:192.168.33.2 ComputerSystem Get UserName 

注意這樣的事情只會工作,如果你有權限(如域管理員可能)來查詢其他機器。對於一般的互聯網資料,這根本不起作用。

最終,只有當您的Web服務器和客戶機共享相同的身份驗證機制(例如samba,NTLM,Kerberos等)時才能實現。

相關問題