¿La mejor manera de determinar si las cookies están habilitadas en ASP.NET?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Cuál es el mejor método para determinar si el navegador de un usuario tiene habilitadas las cookies en ASP.NET?

¿Fue útil?

Solución

Establezca una cookie, fuerce una redirección a alguna página de verificación y verifique la cookie.

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

Otros consejos

@Mattew tiene razón, la única forma de averiguarlo es establecer una cookie, redirigir y luego verificarla. Aquí hay una función C # para preformar que comprueba que 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;
}


También puede hacerlo en javascript, de esta manera:

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

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

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

la función c # de meda funciona aunque debe cambiar la línea:

Cookie HttpCookie = nueva HttpCookie (" ", " ");

a

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

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

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top