2011-02-09 71 views
2

我有一個使用使用ASP.NET餅乾一個網站,但是每次我發佈一個新網站,並上傳新的.dll的全部或部分無效它所有現有的Cookie。
Cookie用於跟蹤簡單登錄,但我想維護髮布前創建的cookie,以便它們在事後仍然可用 - 這似乎影響基於webkit的瀏覽器,並且在我的測試中,我可以在每次部分或完整發布。如何防止使用ASP.NET發佈重置Cookie?

下面是代碼我用它來設置cookie:

If HttpContext.Current.Response.Cookies(COOKIE_NAME) Is Nothing Then 
      Dim _cookie As New HttpCookie(COOKIE_NAME, CookieValue) 
      _cookie.Path = COOKIE_PATH 
      _cookie.Expires = COOKIE_EXPIRES 
      HttpContext.Current.Response.Cookies.Add(_cookie) 
     Else 
      With HttpContext.Current.Response.Cookies(COOKIE_NAME) 
       .Path = COOKIE_PATH 
       .Value = Value 
       .Expires = COOKIE_EXPIRES 
      End With 
     End If 

這裏是我用它來閱讀一個Cookie代碼:

If HttpContext.Current.Request.Cookies(COOKIE_NAME) IsNot Nothing Then 
    Return HttpContext.Current.Request.Cookies(COOKIE_NAME).Value 
End If 

凡COOKIE_NAME被設置爲「的myCookie」和COOKIE_PATH設置爲「/」,並且COOKIE_EXPIRES設置爲「#1/1/2035#」

我可以正常讀寫cookies,但是一旦我做了發佈所有先前創建的cookie,Webkit瀏覽器就無法讀取,一個雖然他們可以再次寫入,但我不確定這將始終如此 - 我希望發佈對cookies沒有任何影響 - 這可能嗎?

+0

你看着請求/效應初探頭從WebKit瀏覽器,看看到底是怎麼回事? – Brady 2011-02-21 21:49:36

回答

0

確保您在web.config中定義了機器密鑰。否則,ViewState,會話,表單身份驗證或其他加密和/或安全值將在應用程序回收時失效。

這裏是codeplex好文章。

This是一個在線工具,爲您生成計算機密鑰。

<system.web> 
<machineKey YOUR VALUES HERE/> 
</system.web> 
+0

我沒有加密我正在讀/寫的這些信息,該值在進入cookie時已經受到保護,並且使用來自Cookie值的固定代碼完成。 – RoguePlanetoid 2011-02-09 13:12:36

+0

我做了一些進一步的閱讀,我提到的機制似乎只適用於角色曲奇,所以確實,這似乎不是解決您的問題。 – santiagoIT 2011-02-09 14:11:25

相關問題