沒辦法
因為本機安全性原則。
而且要用 ActiveXObject 還需要用戶同意打開才行。
如果說還有沒有其它辦法的話,就是要建立自已能讓客戶下載的obj才行了。
轉個彎!
CLIENT端用 WINDOWS 並加入AD
然後 GPO 設定 IE-> [使用目前的使用者名稱及密碼來自動登入]
然後架個IIS SERVER, 上面寫個轉址asp/aspx 網頁程式
這樣USER 先用IE 連這個IIS asp/aspx 網址
asp/aspx 網頁程式 就取得 使用者 Windows登入的帳號
然後轉址到JSP 時 將帳號 帶過去!
這就完成您的需求了!
希望以上能幫助您!
我不知道你想要取得 Username 的用途是甚麼? 不過, 單獨取得 Username 這個內容, 是非常不可靠, 而且很容易被偽造的. 如果你的 App 只信任這個字串, 然後授予他特定存取權限的話, 有心人可以透過偽造這個字串, 而取得非法的使用權.
如果你的目的是要取得可靠的登入者身分, 那麼應該要透過一個驗證程序, 來確認他回報給你的帳號是真實且可靠. 這個方法在 Windows 裡面叫做: Integrated Windows Authentication (簡稱: IWA, 如果你用過 MS-SQL 的 SSMS 介面, 應該就體驗過這個功能; VMWare 的 vCenter 也在 Client 介面上內建了這個功能; 附帶一提, vCenter 是用 Java 寫的, 所以你也一定可以仿造出來).
他的過程大致如下:
各大瀏覽器都支援 IWA 驗證:
Configuring Chrome and Firefox for Windows Integrated Authentication
Tomcat 也支援使用 IWA 驗證:
Apache Tomcat 7: Windows Authentication How-To
完成了這樣的流程之後, 你才能夠開始信任:
從 Client 端回報出來的 Username 是真實可靠的.
因本站篇幅有限, 這裡有比較詳細的解釋:
Spring Security Kerberos 配置IWA的關鍵步驟備忘
其實 IWA 就是一種 Single Sign On (簡稱: SSO, 單次登入) 的概念, 也就是: 用戶只需要登入一個裝置, 就可以用這個登入身分, 持續去登入使用其他的系統....自始至終, User 都只需要在第一個裝置上敲一次帳密, 後面的系統就通通可以獲得授權...
現在很多 SaaS 服務也都提供其他網站的 SSO, 例如: Google, Facebook, Microsoft...等等, 你只要在 G/F/M 上面有帳號可以登入, 其他的網站就可以參考 G/F/M 提供的 Token 來驗證你, 而不需要使用者另外儲存一套帳密在網站上, 重新驗證身分...
但也因為 SSO 的威力強大, 所以不能只單純取得用戶登入的 Username 就加以信任, 每一關都還要做二次驗證, 只不過後續的二次驗證, 不需要由 User 介入 (ex: 重新輸入帳密), 而是系統會自動幫你做完....(因為現在你就是前述的那個: 系統, 所以這些工作要由你的軟體來完成)
==== 我是分隔線
萬一你的用途不是以上所述, 而且不介意 Username 真實性與可靠度的話, 那麼 Windows 的環境變數其實都會儲存用戶登入的資訊, 你只要用 DOS 的 set 指令看一下:
然後請瀏覽器用 Javascript 取出環境變數 (提醒: 這個動作也是違反安全原則的), 再 POST 回 Server 就可以了. 不過還是要提醒, 這個方法非常不可靠, 我有一百種方法可以讓你拿到假的 Username....