2009-08-25 2 views

risposta

16

Da MSDN

Un modo per determinare se i cookie sono accettati è di cercare di scrivere un cookie e quindi cercando di leggere di nuovo. Se non riesci a leggere il cookie che hai scritto, presumi che i cookie siano disattivati ​​nel browser.

scrittura:

Sub Page_Load() 
    If Not Page.IsPostBack Then 
     If Request.QueryString("AcceptsCookies") Is Nothing Then 
      Response.Cookies("TestCookie").Value = "ok" 
      Response.Cookies("TestCookie").Expires = _ 
       DateTime.Now.AddMinutes(1) 
      Response.Redirect("TestForCookies.aspx?redirect=" & _ 
       Server.UrlEncode(Request.Url.ToString)) 
     Else 
      labelAcceptsCookies.Text = "Accept cookies = " & _ 
       Request.QueryString("AcceptsCookies") 
     End If 
    End If 
End Sub 

poi leggere

Sub Page_Load() 
    Dim redirect As String = Request.QueryString("redirect") 
    Dim acceptsCookies As String 
    ' Was the cookie accepted? 
    If Request.Cookies("TestCookie") Is Nothing Then 
     ' No cookie, so it must not have been accepted 
     acceptsCookies = 0 
    Else 
     acceptsCookies = 1 
     ' Delete test cookie 
     Response.Cookies("TestCookie").Expires = _ 
      DateTime.Now.AddDays(-1) 
    End If 
    Response.Redirect(redirect & "?AcceptsCookies=" & acceptsCookies, _ 
     True) 
End Sub 
+1

Qualora la stalla trasferimento dei dati per qualche motivo (carico di rete) da più di un minuto, non funzionerà. Forse mettere un tempo più lungo. –

+1

fai un controllo per assicurarti che le persone non usino la tua pagina di reindirizzamento per cose cattive, come il reindirizzamento al sito web di pesca ecc ... – Fredou

+0

sembra impossibile. Stavo cercando di impedire la scrittura in sessione e i cookie se so che il cookie funziona. Credo di aver bisogno di scrivere entrambi. –

1

Salvare un valore nei cookie, effettuare un reindirizzamento ad alcune pagine e provare a leggere il valore indietro. Se funziona, i cookie sono abilitati. Se no, allora no.

0
  1. crearne uno
  2. provare a leggerlo?