asp.net cookies

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



cookies netflix (8)

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


@Mattew tiene razón, la única manera de averiguarlo es establecer una cookie, redirigir y luego verificarla. Aquí hay una función de C # para preformar esa verificación. 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; } Puedes hacerlo en javascript también, 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; }


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


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


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


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


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

O establezca una cookie en cada carga de página, si aún 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.


La función c = de meda funciona aunque tienes que cambiar la línea:

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

a

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


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