我想在使用asp.net和c#的同一瀏覽器中爲不同的選項卡創建和維護不同的cookie。我想創建一個只能訪問一個選項卡的cookie。如果另一個選項卡發出另一個請求,那麼它將被視爲該選項卡的新請求,併爲該選項卡創建cookie。爲同一瀏覽器中的不同選項卡創建和維護不同的Cookie
所以我想要在同一個瀏覽器中的所有標籤的獨特的cookie。我如何用C#代碼做到這一點?
我想在使用asp.net和c#的同一瀏覽器中爲不同的選項卡創建和維護不同的cookie。我想創建一個只能訪問一個選項卡的cookie。如果另一個選項卡發出另一個請求,那麼它將被視爲該選項卡的新請求,併爲該選項卡創建cookie。爲同一瀏覽器中的不同選項卡創建和維護不同的Cookie
所以我想要在同一個瀏覽器中的所有標籤的獨特的cookie。我如何用C#代碼做到這一點?
我不認爲你可以讓瀏覽器「只有在這個選項卡中讀這個cookie此頁」和「只讀對於同一頁面的其他餅乾在這個其他選項卡」。您可能必須閱讀全部 Cookie的每個實例(即每個不同的選項卡),然後在Cookie中使用某種標識符來決定在特定情況下使用哪種Cookie。
一個總體思路:
如果你可以添加一個簡單易讀的「鑰匙」一個cookie,那麼你也可以遍歷所有的人,只有利用值從一個關鍵的餅乾匹配頁面中的一個鍵。
頁面中的鍵可以由服務器爲每個新請求生成。你可以將它存儲在input field of type "hidden"(或者也許在視圖狀態存儲中?)。
在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";
如果你去/firstTab
做document.cookie
,你將只能看到myField=blah
,如果您在/secondTab
中做同樣的事情,您將只能看到myField=blah2
。 Here's W3Schools教程的JavaScript Cookie。
如果要包含從C#傳遞的信息,只需將其添加到隱藏字段中,然後使用javascript從該字段獲取它。
買者
如果你的標籤帶你到不同的路徑,然後這個工程。但是如果你只使用散列,那麼它將不起作用,因爲散列不是路徑的一部分。你可以用document.location
來看這個。您必須跨標籤共享Cookie並自行解析這些值。