2009-12-24 90 views
1

基本上,如果cookeis是在客戶端上禁用的,我想知道是否這...如果cookie被禁用,asp.net是否將cookie作爲會話cookie存儲或不存儲?

dim newCookie = New HttpCookie("cookieName", "cookieValue") 

newCookie.Expires = DateTime.Now.AddDays(1) 

response.cookies.add(newCookie) 

通知我設定的日期,所以它應該被存儲在磁盤上,如果禁用cookie並asp.net自動儲存這個cookie作爲一個會話cookie(這是一個持續在瀏覽器內存中的cookie,直到用戶關閉瀏覽器,如果我沒有弄錯)....或者asp.net不會在任何情況下(任何地方)添加cookie我不得不重新將cookie添加到集合中,而不需要日期(存儲爲會話cookie)......當然,這需要我兩次添加一個cookie ......也許第二次不必要地如果它正在存儲在瀏覽器內存無論如何...即時通訊只是試圖不存儲兩次,因爲它只是錯誤的代碼!任何想法,如果我需要寫另一行或不? (這是)......

response.cookies.add(新的HttpCookie( 「cookieName」, 「cookieValue」)在客戶端瀏覽器內存「會話cookie

謝謝你們

+1

只是一個評論,我不是說abotu會話對象,它如何將它的ID保存在cookie中,我只是在說abotu會話cookie和cookie ......(與會話對象無關)......會話cookie意思是在客戶端內存cookies數據(客戶端內存,而不是服務器) – 2009-12-30 21:56:35

+0

對此沒有任何困惑。你最終試圖做的是不可能的。 '會話cookie'是一個cookie,IE只是顯然使用一些智能邏輯來解決這個問題。 – 2009-12-31 00:01:31

+0

有一點值得注意,你說你想在用戶計算機內存(客戶端/瀏覽器內存)中「存儲」信息,而無需連續傳輸數據(viewState)或將其全部加載到我的服務器內存(sessionState)中「如果你使用cookie來使用默認路徑,那麼cookie和它的數據將被髮送到每個請求的服務器*,並存儲在Request對象的Cookies集合中,所以你實際上並沒有進行任何存儲結束,但實際上爲各方做更多的工作。你可以看看Silverlight或Flash存儲選項...... – 2010-03-26 11:11:13

回答

1

MSDN文章似乎以表示沒有內置的用於補償用戶禁用cookie的機制,還表明會話狀態在沒有啓用至少一定級別的cookie的情況下不起作用

我認爲存在一種機制,會話ID查詢變量,但略讀文章(快速)我沒有看到這個。

希望有所幫助。

編輯:它的確說你可以使用無Cookie會話(我認爲你可以)。他們使用單獨的機制將會話ID嵌入到頁面和url鏈接中。

+1

不是在談論會話狀態ie:session(「someVar」)=「someValue」 只是在談論cookies即:在客戶端磁盤上和在客戶端瀏覽器內存 – 2009-12-24 05:14:47

+0

我意識到這一點,但無Cookie會話的支持將會話狀態維護。這奇怪的是殘疾人(不是最好的設計恕我直言)。我相信,如果用戶已經禁用了cookies,那麼您將不會收到警告(除了自己檢查它們),cookies將會消失在以太網中。 – GrayWizardx 2009-12-24 05:48:35

+1

但有些情況下,客戶端可以啓用cookie數據存儲在其客戶端瀏覽器內存中,同時不允許cookie數據存儲在磁盤上的cookie文件中。在Internet Explorer中,該選項被標記爲「允許會話cookie」 – 2009-12-24 06:43:35

1

要跟進GrayWizardx的回覆,大部分內容完全準確。

如果您使用Cookie的Cookie版本,並且cookies被禁用,那麼您運氣不好。但是您可以選擇使用無Cookie的會話版本,該會話會在顯示用戶會話標識的URL中添加一個字符串。這看起來很醜陋,從安全的角度來看,我總是關心我。

所以你有三個選擇(我可以想到我的頭頂上): 1.需要cookie。這不是一件壞事,尤其是如果你的網站是一個需要cookies的網站。 2.使用ViewState。
3.在URL中傳遞頁面之間的信息。這從安全角度再次令我擔憂。

+1

只是一個問題,如果cookie被禁用,是否有任何方式將信息存儲在用戶的計算機內存(客戶端/瀏覽器內存),而無需連續傳輸數據(viewState)或加載它在我的服務器內存(sessionState)... 我只是想卸載儘可能多的存儲,因爲我可以給客戶端(同時牢記安全義務)...並沒有選擇的地方,堅持他們在服務器內存或視圖狀態。 我認爲如果一個人禁用了cookies,這並不意味着會話cookie被禁用,所以我原來的問題仍然適用......任何想法? – 2009-12-24 06:41:30

+0

餅乾是餅乾。如果他們被禁用,那麼他們都被禁用。如果用戶想要鎖定你,那麼你可以做的事情不多。這只是瀏覽器/網站的模型。 爲什麼如此關心cookie被啓用或禁用?我已經開發了一些相當大的項目,這對我來說或者這個項目的商業人士從來都不是一個問題。 有些人只是想在網絡上有一個可怕的經歷。我們無法防止太多。 – 2009-12-24 15:34:55

+1

@Clarence:你是不正確的,進入互聯網瀏覽器cookie設置,即使你可以禁用cookies,你也可以明確地啓用會話cookie_while_寫入磁盤的cookies被禁用。即時通訊並不擔心這一點,我只需要知道當磁盤/永久性Cookie被禁用時以及當您提供到期日期時,asp.net如何處理寫入Cookie(如果它寫入會話cookie)。在這種情況下,它會寫入會話cookie(在瀏覽器內存中)還是不寫任何內容。這是我需要知道的。 – 2009-12-24 21:48:23