2013-11-14 37 views
0

我想弄清楚如何刪除該cookie,而無需每次通過此vbscript寫入會話cookie。檢查特定子域上是否存在重複的cookie?

我們有兩個餅乾,第一個設置在網站上被運行的域與

response.AddHeader "Set-Cookie","cookie1=value;expires=Sun, 18-Jan-2037 00:00:00 GMT;path=/" 

此設置域a.sitename.com。對於新版本,我們將Cookie設置爲主域。

response.AddHeader "Set-Cookie","cookie1=value;expires=Sun, 18-Jan-2037 00:00:00 GMT;domain=sitename.com;path=/" 

我需要刪除的a.sitename.com域的cookie不刪除對sitename.com域之一。

我發現我可以將cookie設置爲在今天之前過期,並且會在會話結束時清除。但我不想在每次通過此代碼時在會話結束時放棄新的cookie。

If(some check here) then 
    response.AddHeader "Set-Cookie","cookie1=value;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/" 
End If 

什麼在的VBScript檢查是否在特定子域存在一個cookie的最佳方式,同時存在具有相同的名稱和值在根域餅乾嗎?

回答

1

您必須認識到,瀏覽器將出於安全目的而對沙盒的某些功能和數據進行沙盒處理。因此,它不會在HTTP請求中告訴你該cookie設置爲哪個域。它只是將cookie發送到您的服務器,瀏覽器認爲該服務器對請求有效,然後您只能看到cookie名稱和值。

1

你不能那樣做。 「在這裏進行一些檢查」根本沒有服務器端的信息。

瀏覽器根據用戶正在瀏覽的域知道要發送哪些cookie。但是,發送給您的Cookie標題不包含該信息。

幾點建議:

  • 使用不同的cookie名稱
  • 如果不能更改cookie名稱,請確保存儲在cookie中的數據是某種舊的價值和你」向後兼容將能夠優雅地處理您的數據'格式'
  • 我最近遇到的一個特例:我的生產cookies(mysite.com)干擾了我的測試cookie(test.mysite.com)。我的解決方案是爲我的測試環境創建一個自定義HOSTS條目,並將其作爲test-mysite.com訪問,以便不存在Cookie衝突。

希望這會有所幫助。