2013-07-10 61 views
-1

我正在處理ASP.NET MVC 4應用程序。我創建了幾個cookie,並沒有設置任何到期時間。當我做一個RedirectToAction時,所有的cookies都被刪除了。我不知道我在這裏失去了什麼。以下是我寫的創建代碼和訪問餅乾:ASP.NET MVC Cookie在重定向到操作後被刪除

創建的cookie:

HttpCookie authorizedCookie = new HttpCookie(AuthCookieName); 
authorizedCookie.Value = authorized.ToString(); 
Response.SetCookie(authorizedCookie); 

訪問餅乾:

authorized = Request.Cookies[AuthCookieName] != null ? System.Convert.ToBoolean(Request.Cookies[AuthCookieName].Value) : false; 

當我試圖訪問餅乾,Cookie集合始終空。

更新: 我也嘗試設置域,過期時間,httponly,但似乎沒有任何工作。當我看着小提琴手時,cookies似乎在重定向後立即被刪除。

+0

提供的代碼和信息不足以回答這個問題。你用什麼URL登錄,你重定向到哪個網址?此外,您無法一次性重定向和設置Cookie,您是否正在執行此操作? – CodeCaster

+0

@CodeCaster我使用的URL是「us-srv-web01d/appname」。正如其他職位建議,我試圖刪除連字符,但餅乾仍然沒有得到創建。要提到這個問題只發生在IE中。在IE中根本不創建cookie。其他瀏覽器的工作非常好。 –

+0

我剛剛在其他幾臺運行相同版本IE的工作機器上測試了該應用程序,並且該應用程序正常工作。截至目前,這個問題似乎是特定於我的機器。所有cookie都在我的機器上啓用。所以,我還沒有確定究竟是什麼原因(或設置)。 –

回答

0

我現在可以創建cookie了。這個問題似乎與我的IE設置。我將瀏覽器重置爲初始狀態,cookies工作正常。

我還不確定哪個設置導致了問題。因此,我仍然不相信使用cookie方法。目前我的網站嚴重依賴於cookies,任何與用戶瀏覽器有關的問題都會使我的網站無用。我打算更換cookie方法。

感謝您的回覆。

1

Response.SetCookie()只更新現有的Cookie。使用Response.Cookies.Add()。

+0

,似乎也沒有伎倆。我能夠通過重定向後創建cookie來部分解決問題。它在所有瀏覽器上都很有魅力。但IE無法創建Cookie。我的網址看起來像「htttp:// us-srv-web01d/appname」。根據我閱讀的其他帖子,IE不喜歡域名中的一些字符。所以我刪除了域名中的連字符,但這也不起作用。 –

+0

關於你的意見,可能試着看看有沒有什麼在這裏可以幫助你:http://stackoverflow.com/questions/7384502/ie9-loses-cookies-after-redirect – JuhaKangas