2009-10-02 188 views
2

客戶端在a.url.com上有一個站點。客戶端用主機創建一個cookie爲「.url.com」,路徑爲「/」。客戶在b.url.com重定向到我們。客戶端有一個編碼問題,需要我們刪除cookie(長篇故事)。覆蓋cookie的問題

以下代碼在我們的測試或生產環境中根本沒有調整過期,但在本地工作正常。

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 

任何想法?

+0

我們已經做了一些更多的研究。該cookie實際上是從www1,www2或www3.url.com創建的,儘管這不重要。我們測試過,當我們手動創建cookie並將主機值設置爲與我們的域(如b.url.com)完全相同的值時,代碼正在更新cookie。當主機值設置爲更通用的「.url.com」時,它不起作用。思考? –

回答

5

我們已經想通了。我們需要添加一行代碼來手動設置域。現在做出總體感覺。

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Domain = ".url.com"; 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

這正是我要建議的。 – Nirlep

0

這是第三方cookie?如果是這樣,IE中的默認安全設置將防止cookie在「internet」區域中寫入,但它允許在您的本地區域中。

+0

不。他們都共享相同的域名,但只有不同的主機有像dog.animal.com和cat.animal.com這樣的記錄。 –

+0

該cookie由一個向下幾個目錄的頁面設置。 Cookie由http://a.url.com/a/b/page設置。重定向後(不同的IP和不同的服務器),我們的代碼發生在http://b.url.com/c/page。我不認爲這很重要,因爲cookie路徑設置爲「/」,但是誰知道。 –

0

這是一個黑客攻擊。如果您發現由於某些安全問題無法處理第二個站點上的問題而無法做到您想要的功能,我只是發佈此信息。

您可以向第一個網站發送請求,以通過重定向清除cookie並讓該網站再次彈回用戶。就像我說的,這是非常黑客的(或者我認爲市場營銷將它稱爲站點間協作安全功能)。

希望有更好的方法,但是如果沒有其他方案即將出臺,至少你有其他選擇。

0

如果你不能在C#中工作,你可能想考慮看看你是否可以在JavaScript中操作cookie。

Gary