2008-10-16 10 views

Répondre

18

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

Ou de définir un cookie sur chaque pageload, si ce n'est déjà fait. Par exemple, je suppose que c'est pour vérifier si les cookies sont supportés pour afficher un message quand ils essaient de se connecter qu'ils doivent activer les cookies. Définissez votre cookie de connexion à une valeur par défaut pour les utilisateurs invités s'ils n'ont pas encore défini le cookie. Ensuite, sur votre page de connexion, vérifiez le cookie de l'utilisateur, et s'il n'est pas défini, affichez votre message.

+0

pouvez vous fournir le code exact? J'ai essayé de rediriger. Cela n'a aucune différence avec le chargement direct de la page. Le cookie peut toujours être lu même si le cookie est désactivé. –

1

Ecrivez un cookie, redirigez, voyez si vous pouvez lire le cookie.

1

Eh bien, je pense que si nous pouvons enregistrer cookie dans Global.ASAX démarrer la session et lire cela sur la page .. n'est-ce pas le meilleur moyen?

-3

c'est la meilleure façon

pris 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

-1

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

+1

Browser.Cookies est vrai si le navigateur * supporte * les cookies, donc c'est vrai même si les cookies sont désactivés: "Si l'utilisateur a désactivé les cookies dans leur application, la propriété Cookies ne sera pas affectée." (http://msdn.microsoft.com/en-us/library/system.web.configuration.httpcapabilitiesbase.cookies(v=VS.90).aspx) – mamoo

3

@Mattew est juste la seule façon de savoir est de définir un cookie, rediriger, puis vérifier. Voici une fonction C# pour préforme de vérifier que vous pouvez mettre ceci dans votre page événement de chargement:

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 le faire en javascript aussi, 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; 
} 
0

meda fonction de C# fonctionne bien que vous deviez changer la ligne:

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

à

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

0

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