Le meilleur moyen de déterminer si les cookies sont activés dans ASP.NET?

StackOverflow https://stackoverflow.com/questions/210321

  •  03-07-2019
  •  | 
  •  

Question

Quelle est la meilleure méthode pour déterminer si le navigateur d'un utilisateur a activé les cookies dans ASP.NET

Était-ce utile?

La solution

Définissez un cookie, forcez une redirection vers une page de vérification et vérifiez le cookie.

Ou définissez un cookie sur chaque chargement de page, s'il n'est pas déjà défini. Par exemple, je suppose que cela a pour but de vérifier si les cookies sont pris en charge pour afficher un message lorsqu'ils essaient de se connecter et qu'ils ont besoin d'activer les cookies. Définissez votre cookie de connexion sur une valeur par défaut pour les utilisateurs invités s'ils ne l'ont pas encore configuré. Puis, sur votre page de connexion, recherchez le cookie utilisateur et, s'il n'est pas défini, affichez votre message.

Autres conseils

@Mattew a raison, le seul moyen de savoir est de définir un cookie, de le rediriger, puis de le vérifier. Voici une fonction C # pour préformer qui vérifie que vous pouvez mettre ceci dans votre événement de chargement de page:

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;
}


Vous pouvez aussi le faire en javascript, de cette façon:

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;
}

Écrivez un cookie, redirigez-le pour voir si vous pouvez le lire.

Eh bien, je pense que si nous pouvons enregistrer un cookie dans Global.ASAX, démarrez-le et lisez-le à la page .. N’est-ce pas la meilleure solution?

La fonction c # de meda fonctionne bien que vous deviez changer de ligne:

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

à

cookie HttpCookie = new HttpCookie ("CookieTest", "CookieTest");

Essentiellement la même solution que meda, mais dans 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

Vous pouvez également vérifier la valeur de Request.Browser.Cookies . Si la valeur est true, le navigateur prend en charge les cookies.

c'est la meilleure façon

extrait de 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"
  }
}

grâce à Venkat K

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top