2011-08-06 190 views
5

有沒有一種方法可以檢查瀏覽器是否允許Cookie。檢查瀏覽器是否接受Cookie

Request.Browser.Cookies 

禁用cookie時不起作用。它說瀏覽器可以支持他們。

我能想到的唯一的其他事情就是嘗試設置一個測試cookie,然後檢查它是否設置。

無論如何,確保cookies實際上已啓用。

+2

確定cookie是否被接受的一種方法是嘗試寫入一個cookie,然後嘗試再次讀取它。如果您無法閱讀您所寫的Cookie,則認爲瀏覽器中的cookies已關閉。 –

+1

毫不奇怪,唯一的答案是將cookie寫出來,並在您認爲cookie如何工作時嘗試將其讀回來 - 一個http響應設置了一個標題,然後瀏覽器只在從該exac請求時才吐出該響應相同的域名 - 如果三個是另一種方式來做到這一點,那麼cookie不會對身份驗證等事情有好處 –

回答

9

根據MSDN,無法確定用戶允許或禁止Cookie。找出答案的唯一方法就是寫出來然後閱讀。

查看「確定瀏覽器是否接受Cookie」部分here

它也有例子,顯示瞭如何讀取和寫入的cookie,並指出:

餅乾財產並不表示餅乾是否已啓用。它僅指示當前瀏覽器是否固有地支持 cookie。

2

我不知道任何方式在asp.NET中做到這一點。你所能做的就是創建一個cookie並嘗試在回發中讀取它。
你可以看到例如如何做到這一點(這是vb.NET,但我敢肯定,你可以在谷歌許多其他例子,在C#中找到):http://forums.asp.net/t/1044823.aspx

+0

到目前爲止,這似乎是唯一的選擇。 – Dietpixel

+0

@Dietpixel:在我遇到過這個問題之前和之後,我發現這是我最好和最簡單的選擇(如果不是唯一的)。 – Naor

1

我不知道其他的方法: 設置cookie,檢查cookie是否存在。

1

大家都表示,你基本上需要設置,重定向檢測(除非你想在這種情況下,JavaScript可以做檢查僅客戶端檢測) 有a control for this someone wrote.

0

HttpCapabilitiesBase.Cookies屬性獲取一個值指示瀏覽器是否支持Cookie。 See the documentation.

+0

從文檔:「Cookies屬性表明瀏覽器應用程序是否支持cookie,如果用戶在其應用程序中禁用了cookie,則Cookie屬性不會受到影響。」 –