Você está aqui: ASP.NET ::: Dicas & Truques ::: Cookies

Como testar se o navegador (browser) do usuário suporta cookies e se estes estão habilitados

Quantidade de visualizações: 8625 vezes
Em algumas situações gostaríamos de verificar se o browser do usuário suporta cookies e se estes estão habilitados. Esta dica mostra como isso pode ser feito em suas aplicações ASP.NET.

Sabemos que o usuário pode desabilitar os cookies em seu navegador. Sabemos também que nenhum erro é exibido pela página ASP.NET caso não consigamos ler ou gravar cookies no computador do usuário. Para aplicações que dependem de cookies, esta é uma situação que pode trazer muita dor de cabeça.

Uma das formas mais confiáveis de se verificar se os cookies são suportados e se estão habilitados, é tentando gravar e depois ler o valor de um cookie. Para isso usaremos duas páginas ASP.NET. Veja o código para a primeira (Default.aspx):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true"  
CodeFile="Default.aspx.cs" Debug="true"
Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 
1.0Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Estudos ASP.NET</title>
</head>
<body>

<form id="form1" runat="server">
  
  <asp:Button ID="Button1" runat="server" Text="Gravar valor em cookie" 
    onclick="Button1_Click" />
  
</form>

</body>
</html>

Nesta página temos apenas um botão <asp:Button>. Veja a implementação de seu evento Click no arquivo de code-behind Default.aspx.cs:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page {
  protected void Button1_Click(object sender, EventArgs e){
    // vamos gravar um cookie e direcionar para uma segunda página
    Response.Cookies["teste_cookie"].Value = "ok";
    
    // vamos definir o tempo de vida do cookie
    Response.Cookies["teste_cookie"].Expires = 
      DateTime.Now.AddMinutes(1);
    
    // vamos direcionar para a página de teste
    Response.Redirect("Pagina2.aspx");
  }
}

Note que aqui nós criamos um cookie chamado "teste_cookie" e definimos sua data de expiração para daqui a 1 minuto. Em seguida nós direcionamos o browser para uma página Pagina2.aspx. Veja o código para esta segunda página:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Pagina2.aspx.cs" Inherits="Pagina2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    <asp:Label ID="Label1" runat="server" 
      Text="Resultado do texto de cookies"></asp:Label>
    
    </div>
    </form>
</body>
</html>

Nesta página Pagina2.aspx nós temos apenas um controle <asp:Label>, que exibirá um texto nos informando se cookies estão habilitados ou não. Veja agora o código para o evento Page_Load desta página no arquivo de code-behind Pagina2.aspx.cs:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Pagina2 : System.Web.UI.Page{
  protected void Page_Load(object sender, EventArgs e){
    // vamos verificar a existência do cookie "teste_cookie"
    // se este existir é sinal de que o browser aceita cookies
    if(Request.Cookies["teste_cookie"] == null){
      Label1.Text = "O browser não aceita cookies";
    }
    else{
      Label1.Text = "O browser aceita cookies";
      
      // vamos excluir o cookie
      Response.Cookies["teste_cookie"].Expires =
        DateTime.Now.AddDays(-1);
    }
  }
}

Execute a aplicação e clique no botão. Se cookies estiverem habilitados a segunda página será exibida com a mensagem "O browser aceita cookies". Caso contrário a mensagem será "O browser não aceita cookies".

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de ASP.NET

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 43 usuários muito felizes estudando em nosso site.