Você está aqui: ASP.NET ::: Dicas & Truques ::: Cookies |
Como testar se o navegador (browser) do usuário suporta cookies e se estes estão habilitadosQuantidade de visualizações: 8608 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: |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Noções de licitação pública A prefeitura de um município do interior do Estado de Santa Catarina precisa realizar uma licitação para a aquisição de bens de informática considerados comuns, como impressoras, cartuchos, laptops, estabilizadores, etc. A modalidade de licitação mais indicada é: A) convite. B) leilão. C) concurso. D) pregão. E) concorrência. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações diretas ou rasas As fundações rasas ou diretas apresentam como características a transmissão da carga ao terreno, predominantemente pelas pressões distribuídas sob a base da fundação, e a profundidade de assentamento em relação ao terreno inferior a duas vezes a menor dimensão da fundação. Sobre as fundações superficiais rasas ou diretas, assinale a alternativa correta. A) A sapata associada pode ser definida como a sapata sujeita à ação de uma carga distribuída linearmente ou de pilares ao longo de um mesmo alinhamento. B) O radier é o elemento de fundação superficial que abrange parte ou todos os pilares de uma estrutura, distribuindo os carregamentos. C) A sapata corrida é definida como a sapata comum a mais de um pilar. Devido a essa particularidade, para sua execução é necessário o uso de máquinas. D) A sapata é dimensionada de modo que as tensões de tração nela resultantes sejam resistidas pelo concreto, sem necessidade de armadura. E) O bloco é dimensionado de modo que as tensões de tração nele resultantes sejam resistidas pelo emprego de armadura disposta para esse fim. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Viscosidade dinâmica A viscosidade cinemática de um óleo lubrificante é de 0,028m2/s, e seu peso específico relativo é de 0,85. Qual a sua viscosidade dinâmica, em Pa.s? Sabe-se que a aceleração gravitacional local é de 10m/s2. A) 233Pa.s. B) 85Pa.s. C) 85000Pa.s. D) 23,8Pa.s. E) 2,38Pa.s. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Dentro de qual elemento HTML nós inserimos nossos códigos JavaScript? A) <js> B) <scripting> C) <javascript> D) <script> Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas As alvenarias possuem espessuras variáveis, e o posicionamento dos tijolos ou blocos é item do projeto que influencia no desempenho da edificação e no isolamento térmico e acústico, por exemplo. Quando a alvenaria é erguida tendo tijolo maciço no sentido de sua menor espessura, denomina-se alvenaria de: A) Meio tijolo. B) Um tijolo. C) Cutelo. D) Um tijolo e meio. E) Oca. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de ASP.NET |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software 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 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 |