開發測試網站時偶爾會遇到一人分飾多角的需求, 經典案例是待審表單或待辦工作介面,往往需要先用經辦身分處理完傳給主管,接著再切換成主管身分審核同一張表單。 十年前分享過 IE8: 用不同身份連上同一台 Web 的小技巧,恰巧最近有網友問起,索性整理一下這些年我陸續學習到的招式:

無痕模式、InPrivate瀏覽模式、IE 新增工作階段

瀏覽器正常開啟與無痕模式可維持兩種不同身分,但無法靠開更多無痕模式再增加。 實測同時開啟多個 Chrome 無痕視窗或 IE 工作階段,其 Windows 驗證身分或 Cookie 部分是共享的。 另外,無痕模式有個缺點是無法記憶帳號密碼,每回登入得重敲。

瀏覽器人海戰術

前面提到,每個瀏覽器正常加無痕可支援兩種登入身分,將 IE、Edge、Chrome、Firefox、Opera 五種齊開,再各加上各自的無痕模式或秘密瀏覽模式可湊到十種,還可以順便測試跨瀏覽器。 不過若測試網站不支援跨瀏覽器,這招就不管用。

網路有不少靠管理 Cookie 支援多重登入的瀏覽器外掛,例如:(聲明 - 資訊來自網路查詢,未實際使用過)

藉由 Cookie 管理實現的多重身分不支援 IIS 整合式驗證多重登入,也無法整合瀏覽器的密碼記憶功能。 另外,這些特異功能外掛限定特定瀏覽器,且非官方開發,可靠性與安全性易有疑慮,是我不愛用的原因。

Firefox 容器分頁功能

容器分頁功能 是 Firefox 的獨門絕技, 允許建立多個容器個別保存 Cookie,隔離不同登入身分,甚至能做到 IIS 整合式驗證登入身分都各自獨立,還可依容器保存帳號密碼,在我心中是十分出色的解決方案。 可惜此招只適用 Firefox,企業環境測試常常得依賴 IE (歷史包袱)或 Chrome (普及率)。

Chrome 設定檔切換

PO 文後網友提醒 Chrome 也可透過設定檔(Profile)切換多個登入身分,可同時開啟多個視窗各使用不同設定檔,每個設定檔有自己專屬的書籤、歷史記錄、記憶密碼,還可在桌面設定捷徑以特定設定檔開啟網頁,憑這點又再勝 Firefox 容器分頁一籌。 小缺點跟 Firefox 容器分頁一樣,這招只限 Chrome 不能跨瀏覽器使用。

hosts 網域別名法

這是我最常用的解法,具有以下優點:

  • 無分身數量上限
  • 所有瀏覽器都適用
  • 完美支援瀏覽器 Cookie、密碼記憶功能
  • 配合密碼記憶及 Cookie 可由網址決定登入身分

有個前題,它主要用於自行開發的網站的測試,且網站繫結未指定主機名稱(Host Header)

做法很簡單,修改測試客戶端的 C:\Windows\System32\drivers\etc\hosts,為測試主機 IP 加上多組對應網址:

註:hosts 存檔即生效,不需重開機(除非你還在用 Windows 98),但瀏覽器有時會 Cache FQDN,重開瀏覽器即可。 nslookup 只會查 DNS 不能驗證 hosts 設定,請改用 ping 或 telnet。

如上所示,不管輸入 httq://web1.dev.net、httq://web2.dev.net 或是 httq://web3.dev.net, 連上都是 172.28.1.1 80 Port,但由於 URL 不同,瀏覽器將視為三個不同網站,彼此 Cookie 不共用, IIS 整合式驗證身分也彼此獨立。使用以下 ShowUserInfo.aspx 驗證:

<%@Page Language="C#"%>
<script runat="server">
void Page_Load(object sender, EventArgs e)
{
	Response.Write("<li>Logon User=" + 
		User.Identity.Name.Split('\\').Last());
}
</script>

如下圖所示,我開了三個 IE 分別登入 web1、web2、web3,web1 與 web2 顯示結果證明二者登入帳號不同, 而 web3 繼續跳出帳號密碼登入框,允許再使用第三種身分登入。配合瀏覽器依 URL 保存 Cookie 或 IE 的自動登入設定, 未來輸入 web1 即可自動登入為 darkthread。

使用 Chrome 測試也得到相同結果,證明此做法可跨瀏覽器適用無誤。

以上就是我所知道測試網站時實現多重帳號登入的做法,如果大家還知道其他方法,觀迎補充。

This article sharing tricks of logon the same website with different account simutaneously, including incognito window, inprivate browsing, browser addon, Firefox multi-account container and multiple domain-name method.


Comments

# by 熱愛修改的人

黑暗神你好 請問一下 如果是在網咖 尋找不到Notepad++ 這個程式 這樣該如何去做一個修改 是否有其他捷徑尋找Notepad++

# by Jeffrey

to 熱愛修改的人,我猜網咖的電腦應該沒安裝 Notepad++ 吧? (若有安裝,C:\Program Files及C:\Program Files (x86)資料夾下應該會看到 Notepad++ 資料夾)

Post a comment


64 - 61 =