我需要打開第二個瀏覽器窗口或選項卡,但它必須有不同的session ID
。在ASP.NET中使用新的會話ID打開新的瀏覽器窗口
從ASP.NET頁面打開新的瀏覽器窗口很容易,但它共享相同的cookie,因此與原來的session ID
共享。
我該怎麼做?
我需要打開第二個瀏覽器窗口或選項卡,但它必須有不同的session ID
。在ASP.NET中使用新的會話ID打開新的瀏覽器窗口
從ASP.NET頁面打開新的瀏覽器窗口很容易,但它共享相同的cookie,因此與原來的session ID
共享。
我該怎麼做?
這是一個瀏覽器限制 - 瀏覽器實例在運行時共享cookie數據(包括會話cookie),所以這是標準瀏覽器無法實現的。
如果您有一個運行不同瀏覽器(例如IE和Firefox)的選項,它們不會共享cookie並且會有不同的會話。
編輯:
如果你有超過IIS主機頭和DNS在您的環境控制,您可以使用許多不同的域名 - 每次會話中。
瀏覽器會將每個域名視爲不同的服務器,並創建不同的cookie(因此會話)。
是的,我知道,但圍繞它的是什麼。當我打開新窗口時將域名更改爲IP地址時,它確實爲我提供了第二個會話,這很酷,但後來我僅限於2個會話。必須有更好的方法來解決這個問題。 – 2010-04-15 12:32:47
@Daniel:你可以設置IIS,以便你可以使用'a.domainname.com','b.domainname.com'。 'c.domainname.com'等。這種方式你有無限的會話。 – Aaron 2010-04-15 12:46:57
是的,但多數民衆贊成有點極端,必須肯定是客戶端解決這個問題 – 2010-04-15 12:51:57
我不認爲有這樣做的方法,因爲Cookie存儲在瀏覽器級別 - 無論您打開多少窗口,您仍然會有相同的Cookie,因此會話也是如此。
也許這是可能的,如果您使用Cookieless sessions,我不確定,雖然有cookieless會話路線有很多缺點。
編輯:根據您的情況,實現您嘗試實現的一種方法可能是將多個不同的域名/ URL指向同一個ASP.NET站點,這將允許您保留cookies和會話分開。但是如果你需要每個瀏覽器超過2或3個會話,那麼這將變得愚蠢。
nope,它的遺留系統,所以我不能改變網站運行無cookie – 2010-04-15 12:38:57
jip,多個不同的網站到網站確實允許我創建新的會話,但其有限的 – 2010-04-15 12:39:59
Cookieless會話使得它更容易做會話修復攻擊,特別是在asp.net中,你不能在登錄時手動創建一個新的會話http://blogs.sans.org/appsecstreetfighter/2009/06/14/session-attacks-and-aspnet-part-1/ – 2010-04-15 12:49:49
在IE中,您必須使用文件 - 新建會話,或者您可以爲選項卡/會話設置註冊表項。您的選項卡將更改顏色,以顯示您正在使用的會話。
nope,你不能問大家去更改他們的註冊表設置,懷疑很多人甚至知道如何做到這一點 – 2010-04-15 12:41:23
如果您像IT部門一樣在公司環境中工作,IT部門會自動完成此更改 - 因此它是基於Intranet的應用程序的一個很好的解決方案。 – 2010-04-15 13:49:46
我的問題得到了重新解釋?不用擔心,但仍然在尋找答案。它必須是可能的,它在任何瀏覽器中都是非常愚蠢的限制 – 2010-04-15 12:50:01
丹尼爾,我不認爲你會得到超出已經建議的解決方案的許多解決方案。每個瀏覽器/ cookie的一次會話對於大多數瀏覽器現在的工作來說都是非常重要的。也許試着想想另一種方式來實現你正在做的事情。換句話說 - 爲什麼你需要在新的瀏覽器窗口中進行不同的會話,並且能否以某種方式解決問題? – codeulike 2010-04-15 12:58:02