Frage

Was ist die beste Methode zur Bestimmung, ob ein Benutzer Browser-Cookies in ASP.NET aktiviert ist

War es hilfreich?

Lösung

ein Cookie, zwingen, eine Umleitung zu einem gewissen Kontrolle und überprüfen das Cookie.

oder ein Cookie auf jedem Pageload gesetzt, wenn es nicht bereits gesetzt ist. Zum Beispiel gehe ich davon aus, dies zu prüfen ist, ob Cookies unterstützt werden, eine Nachricht anzuzeigen, wenn sie versuchen, um sich einzuloggen, dass sie Cookies aktivieren müssen. Legen Sie Ihre Login-Cookie zu einem gewissen Standardwert für Gastbenutzer, wenn sie noch nicht das Cookie gesetzt haben. Dann auf Ihre Login-Seite, überprüfen Sie für den Benutzer Cookie, und wenn es nicht gesetzt wird, wird Ihre Nachricht angezeigt werden soll.

Andere Tipps

@Mattew ist rechts die einzige Möglichkeit, ein Cookie gesetzt, um herauszufinden, umleiten, dann überprüfen. Hier ist eine C # Funktion Vorform, die Sie überprüfen können diese Ladeereignis auf Ihrer Seite setzen:

private bool cookiesAreEnabled()
{
bool cookieEnabled = false;

if(Request.Browser.Cookies)
{
   //Your Browser supports cookies 
   if (Request.QueryString["TestingCookie"] == null)
   {
     //not testing the cookie so create it
     HttpCookie cookie = new HttpCookie("CookieTest","");
     Response.Cookies.Add(cookie);

     //redirect to same page because the cookie will be written to the client computer, 
     //only upon sending the response back from the server 
     Response.Redirect("Default.aspx?TestingCookie=1")
   }
   else
   {
     //let's check if Cookies are enabled
      if(Request.Cookies["CookieTest"] == null)
      {
        //Cookies are disabled
      }
      else
      {
        //Cookies are enabled
        cookieEnabled = true;
      }   
   }

}
else
{
  // Your Browser does not support cookies
}
return cookieEnabled;
}


Sie können sie auch in Javascript tun, auf diese Weise:

function cookiesAreEnabled()
{   
    var cookieEnabled = (navigator.cookieEnabled) ? 1 : 0;  

    if (typeof navigator.cookieEnabled == "undefined" && cookieEnabled == 0){   
    document.cookie="testcookie";   
    cookieEnabled = (document.cookie.indexOf("test­cookie") != -1) ? 1 : 0; 
    }   

  return cookieEnabled == 1;
}

Schreiben Sie ein Cookie, Umleiten, ob Sie das Cookie lesen kann.

Nun, ich denke, wenn wir Cookie in Global.asax Sitzungsstart speichern und lesen können, dass auf Seite .. Ist das nicht bester Weg?

Meda c # Funktion funktioniert, obwohl Sie die Linie ändern:

Http cookie = new Http ( "", "");

Http cookie = new Http ( "Cookietest", "Cookietest");

Im Wesentlichen der gleiche Lösung wie meda, aber in VB.NET:

Private Function IsCookieDisabled() As Boolean
    Dim currentUrl As String = Request.RawUrl
    If Request.Browser.Cookies Then
        'Your Browser supports cookies 
        If Request.QueryString("cc") Is Nothing Then
            'not testing the cookie so create it
            Dim c As HttpCookie = New HttpCookie("SupportCookies", "true")
            Response.Cookies.Add(c)
            If currentUrl.IndexOf("?") > 0 Then
                currentUrl = currentUrl + "&cc=true"
            Else
                currentUrl = currentUrl + "?cc=true"
            End If
            Response.Redirect(currentUrl)
        Else
            'let's check if Cookies are enabled
            If Request.Cookies("SupportCookies") Is Nothing Then
                'Cookies are disabled
                Return True
            Else
                'Cookies are enabled
                Return False
            End If
        End If
    Else
        Return True
    End If
End Function

Sie können auch den Wert von Request.Browser.Cookies überprüfen. Wenn das stimmt, der Browser Cookies unterstützt.

Dies ist der beste Weg,

entnommen aus http://www.eggheadcafe.com /community/aspnet/7/42769/cookies-enabled-or-not-.aspx

function cc()
{
 /* check for a cookie */
  if (document.cookie == "") 
  {
    /* if a cookie is not found - alert user -
     change cookieexists field value to false */
    alert("COOKIES need to be enabled!");

    /* If the user has Cookies disabled an alert will let him know 
        that cookies need to be enabled to log on.*/ 

    document.Form1.cookieexists.value ="false"  
  } else {
   /* this sets the value to true and nothing else will happen,
       the user will be able to log on*/
    document.Form1.cookieexists.value ="true"
  }
}

dank Venkat K

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top