2013-06-27 29 views
0

我想在使用asp.net和c#的同一瀏覽器中爲不同的選項卡創建和維護不同的cookie。我想創建一個只能訪問一個選項卡的cookie。如果另一個選項卡發出另一個請求,那麼它將被視爲該選項卡的新請求,併爲該選項卡創建cookie。爲同一瀏覽器中的不同選項卡創建和維護不同的Cookie

所以我想要在同一個瀏覽器中的所有標籤的獨特的cookie。我如何用C#代碼做到這一點?

回答

1

我不認爲你可以讓瀏覽器「只有在這個選項卡中讀這個cookie此頁」和「只讀對於同一頁面的其他餅乾在這個其他選項卡」。您可能必須閱讀全部 Cookie的每個實例(即每個不同的選項卡),然後在Cookie中使用某種標識符來決定在特定情況下使用哪種Cookie。

一個總體思路:

如果你可以添加一個簡單易讀的「鑰匙」一個cookie,那麼你也可以遍歷所有的人,只有利用值從一個關鍵的餅乾匹配頁面中的一個鍵。

頁面中的鍵可以由服務器爲每個新請求生成。你可以將它存儲在input field of type "hidden"(或者也許在視圖狀態存儲中?)。

1

在JavaScript中,您可以設置通過路徑餅乾只,如果你是這條道路上已經像這樣:

如果你在www.yourwebsite.com/firstTab你可以設置這個cookie:

document.cookie = "myField=blah;expires=10/10/2020;path=/firstTab"; 

如果你是在www.yourwebsite.com/secondTab你可以設置這個cookie:

document.cookie = "myField=blah2;expires=10/10/2020;path=/secondTab"; 

如果你去/firstTabdocument.cookie,你將只能看到myField=blah,如果您在/secondTab中做同樣的事情,您將只能看到myField=blah2Here's W3Schools教程的JavaScript Cookie。

如果要包含從C#傳遞的信息,只需將其添加到隱藏字段中,然後使用javascript從該字段獲取它。

買者

如果你的標籤帶你到不同的路徑,然後這個工程。但是如果你只使用散列,那麼它將不起作用,因爲散列不是路徑的一部分。你可以用document.location來看這個。您必須跨標籤共享Cookie並自行解析這些值。

相關問題