Desenvolvimento - C#
Criando e Lendo Cookie
O Cookie pode ajudar muito site, praticamente 90% dos sites existentes hoje na internet utilizam a técnica. Agora, pra quê utilizar esse tipo de tecnologia? Espero poder ajudar a responder essa pergunta.
por Mauricio Junior
Olá pessoal, gostaria de falar um pouco de Cookie hoje com vocês. O Cookie pode ajudar muito site, praticamente 90% dos sites existentes hoje na internet utilizam a técnica. Agora, pra quê utilizar esse tipo de tecnologia? Espero poder ajudar a responder essa pergunta.
Requisitos:
. Ferramenta de desenvolvimento: Visual Studio.NET 2008 SP2
. Framework 3.5
. Linguagem C#.NET
Pequena Explicação
O Cookie funciona para manter algumas informações pessoais do usuário, mas as que não são irrelevantes e inseguras; isto é; não deve ser colocado senha, ou qualquer outro código que faz o sistema ficar inseguro.
Geralmente é gravada uma busca no site, um produto do e-commerce acessado, um resultado gerado ou até mesmo uma configuração específica do site. Por exemplo: um site disponibiliza a dinamicidade de escolher usar uma cor azul ou verde, no meu caso escolho a azul. Se sair do site e voltar depois, o mesmo deve estar azul e não verde. Essa informação é ótima gravar como cookie e não no banco de dados. Você já acessou o site do Submarino e escolheu um produto que resolveu não comprar? Depois que voltou no site, estava lá o último produto visualizado, essa informação é gravada via cookie. Não compensa gravar em banco de dados, gerar tráfego, espaço e tudo mais.
O Cookie tem uma data para expirar e pode ser definida pelo programador, ou seja, você. Uma dica importante é, procure deixar sempre as informações dentro de forma criptografada; assim não corre tanto risco no caso das informações abertas.
Código
Tecnicamente, mostro dois métodos escritos em C#.NET e que servem para criar e ler o cookie. Como falado anteriormente, a melhor coisa é gerar com informações irrelevantes como configuração de uma página, cores, ip, em resumo dados que não comprometem a segurança do sistema.
Um problema que aconteceu no início do Orkut foi que, descobriram que tinham os dados dos usuários e códigos dentro do cookie, dessa forma o pessoal (mais esperto) que queria entrar no orkut do outro com perfil diferente, pegava esse código e colocava no cookie da própria máquina. Automaticamente o perfil da outra pessoa aparecia na tela.
Qualquer coisa poderia ser feita, pois o perfil era da outra pessoa. Funcionava perfeitamente a mudança de perfil indevida, mas isso foi devido à falta de segurança colocada no cookie e informações relevantes do sistema. Com o passar do tempo eles mudaram isso.
Método para criar o cookie.
private void CriarCookie(string usuario) { HttpCookie cookie = new HttpCookie("SITE");
//cria cookie com o ip da maquina cookie.Values.Add("IP", this.Page.Request.UserHostAddress.ToString()); cookie.Values.Add("USERNAME", usuario);
//colocando o cookie para expirar cookie.Expires = DateTime.Now.AddDays(365);
this.Page.Response.AppendCookie(cookie); }
|
Code 1.1
Método para ler o cookie.
private HttpCookie ReadCookie() { try { return this.Page.Request.Cookies["SITE"]; } catch { return null; } } |
Code 1.2
Veja o Code 1.1 e 1.2 acima. Note que o primeiro cria o cookie com o nome do SITE, coloquei [SITE] para que seja bem identificado, por exemplo: coloque o endereço do seu site (www.mauriciojunior.org).
O segundo método, retorna um tipo HttpCookie que pega com o nome do seu site, no meu caso [SITE]. Se tivesse colocado o endereço do meu site, teria que colocar ele no segundo método.
Posso usar as informações no site da seguinte forma. (Code 1.3).
HttpCookie cookie = ReadCookie();
if (cookie != null) { string usuario = cookie["USERNAME"]; if (usuario.Length > 0) { txtUsuario.Text = usuario; } else { txtUsuario.Focus(); } } |
Code 1.3
Note que chamo o método ReadCookie() e verifico se ele é null, ou seja, se ele existe. Se existir pego com a variável cookie o nome do usuário gravado anteriormente. Depois atribuo ao campo existente na tela.
É bem simples e fácil utilizar cookie, mas sempre coloque na cabeça a segurança dessas informações, pois é um arquivo que fica na máquina do usuário e não tem controle sobre ele.
Bom, fico por aqui e qualquer dúvida pode entrar em contato pelo site.
Mauricio Junior
blog.mauriciojunior.org