Pergunta

O que é o melhor método para determinar se um navegador usuários tem os cookies ativados em ASP.NET

Foi útil?

Solução

Definir um cookie, forçar um redirecionamento para uma página de verificação e verificar o cookie.

Ou definir um cookie em cada pageload, se já não estiver definido. Por exemplo, eu assumo isso é verificar se os cookies são suportados para exibir uma mensagem quando tento fazer o login que eles precisam para permitir cookies. Defina o seu cookie de login para algum valor padrão para usuários convidados se eles não têm o conjunto cookie ainda. Então, em sua página de login, verifique se o cookie do usuário, e se ele não está definida, em seguida, exibir a sua mensagem.

Outras dicas

@Mattew é certo a única maneira de descobrir é definir um cookie, redirecionamento, em seguida, verificá-lo. Aqui é um C # função para pré-forma que o check você pode colocar isso em seu evento de carregamento da 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;
}


Você pode fazê-lo em javascript, também, desta forma:

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

Escrever um cookie, redirecionamento, veja se você pode ler o cookie.

Bem, eu acho que se podemos salvar cookies no Global.asax início da sessão e ler que na página .. isnt que melhor maneira?

c # função das meda funciona embora você tem que mudar a linha:

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

para

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

Essencialmente a mesma solução que meda, mas em 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

Você também pode verificar o valor de Request.Browser.Cookies. Se for verdade, os suportes do navegador cookies.

Esta é a melhor maneira

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

graças a Venkat K

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top