2008-10-16 20 views

Respuesta

18

Establezca una cookie, fuerce un redireccionamiento a alguna página de comprobación y verifique la cookie.

O establezca una cookie en cada carga de página, si no está configurada. Por ejemplo, supongo que esto es para comprobar si las cookies son compatibles para mostrar un mensaje cuando intentan iniciar sesión que necesitan para habilitar las cookies. Establezca su cookie de inicio de sesión a algún valor predeterminado para los usuarios invitados si aún no tienen el conjunto de cookies. Luego, en su página de inicio de sesión, verifique la cookie del usuario y, si no está configurada, muestre su mensaje.

+0

puede proporcionarle el código exacto? He intentado redireccionar. No tiene ninguna diferencia cargar la página directamente. La cookie aún se puede leer aunque la cookie esté desactivada. –

1

Escriba una cookie, redirija, vea si puede leer la cookie.

1

Bueno, creo que si podemos guardar las cookies en la sesión de Global.ASAX, inicie y lea eso en la página ... ¿no es esa la mejor manera?

-3

esta es la mejor manera

tomado 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" 
    } 
} 

gracias a Venkat K

-1

También puede comprobar el valor de Request.Browser.Cookies. Si es verdadero, el navegador admite cookies.

+1

Browser.Cookies es verdadero si el navegador * admite * cookies, por lo que es cierto incluso si las cookies están deshabilitadas: "Si el usuario ha deshabilitado las cookies en su aplicación, la propiedad Cookies no se verá afectada". (http://msdn.microsoft.com/en-us/library/system.web.configuration.httpcapabilitiesbase.cookies(v=VS.90).aspx) – mamoo

3

@Mattew tiene razón, la única forma de averiguarlo es establecer una cookie, redirigirla y luego verificarla. Aquí es un C# función de preforma que comprueba que usted puede poner esto en su evento de carga de página:

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


Puede hacerlo en javascript también, de esta manera: la función

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

de meda C# funciona aunque tiene que cambiar la línea:

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

a

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

0

Esencialmente la misma solución que meda, pero en 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 
Cuestiones relacionadas