Olá Pessoal, hoje vou demonstrar de forma rápida e fácil de trabalhar com um dos recursos que as tecnologias em ambiente web permitem, é a utilização de Cookies.
Um cookie pode considerar-se que é um arquivo de texto que é enviado à máquina do cliente contendo informações para que a aplicação ou web site possa persistir diretamente no cliente, ou seja, é uma informação para aquele cliente em questão. Além destas informações, um cookie mantém informações a respeito de sua validade, conceitos de chaves/valor para cookies e a qual domínio ele foi gerado/pertence. Alguns exemplos de sua utilização são como armazenar informações a respeito do login do usuário em uma área restritira, manter um controle dos produtos mais acessados em uma loja virtual, entre outras formas.
Em ASP.Net para se utilizar um cookie, devemos utilizar um objeto da classe HttpCookie e enviar este objeto ao cliente através do objeto intrínseco Response. Para fazer a recuperação deste cookie, podemos utilizar o objeto intrínseco Request. Vamos a um simples exemplo:
// criando um objeto cookie para enviar ao cliente
// seu construtor permite que passemos um nome e um valor, ambos do tipo string
HttpCookie cookie = new HttpCookie("teste","abc");
//definindo uma validade de 3 horas para este cookie
cookie.Expires = DateTime.Now.AddHours(3);
//enviando ao cliente
Response.AppendCookie(cookie);
E para fazermos a recuperação deste cookie:
//recuperando um cookie através da chave
HttpCookie cookie = Request.Cookies["teste"];
//caso ele não tenha expirado e não seja nulo
if (cookie != null)
{
//recuperando o valor do cookie
string valor = cookie.Value;
Response.Write(valor);
}
Podemos também utilizar coleções do tipo chave/valor através da propriedade Values, que representa uma coleção da classe System.Collections.Specialized.NameValueCollection para enviar informações ao cliente, por exemplo:
// criando um objeto cookie para enviar ao cliente
// eu construtor permite que passemos apenas um nome
HttpCookie cookie = new HttpCookie("teste");
//definindo valores
cookie.Values["valor1"] = "Felipe";
cookie.Values["valor2"] = "Oriani";
cookie.Values["valor3"] = "Piracicaba";
cookie.Values["valor4"] = "São Paulo";
//definindo uma validade de 3 horas para este cookie
cookie.Expires = DateTime.Now.AddHours(3);
//enviando ao cliente
Response.AppendCookie(cookie);
//recuperando um cookie pelo nome
HttpCookie cook = Request.Cookies["teste"];
//caso ele não tenha expirado e não seja nulo
if (cook != null)
{
//obtendo os valores de cada chave
string valor1 = cook.Values["valor1"];
string valor2 = cook.Values["valor2"];
string valor3 = cook.Values["valor3"];
string valor4 = cook.Values["valor4"];
Response.Write(valor1 + ", " + valor2 + ", " + valor3 + ", " + valor4);
}
Devemos ter alguns cuidados na utilização de cookies, pois como estes são dados que serão enviados e salvos no cliente, estes arquivos tornam-se vulneráveis a softwares maliciosos e podem ler as informações e fazer algo que não desejamos como modificar a informação e enviar a terceiros. Dados que não devemos gravar em cookies são senhas, número de cartão de créditos, informações sigilosas, entre outros tipos de dados. Além disso, outro cuidado que se torna necessário em algumas ocasiões é verificar se o browser do cliente está com o suporte a cookies, pois muitas vezes este suporte pode estar desativado e sendo assim perdemos este recurso de persistência de informação. Para verificar se o browser contém suporte, podemos utilizar a propriedade Browser do objeto intrínseco Request que persiste um objeto da classe HttpBrowserCapabilities (no qual contém informações do browser do cliente). Veja como fazer esta verificação:
if (Request.Browser.Cookies)
{
//suporte cookies
}
else
{
//não suporte cookies
}
O mesmo pode ser feito para outras propriedades deste objeto, como por exemplo:
if (Request.Browser.JavaScript)
{
//suporte Javascript
}
if (Request.Browser.IsMobileDevice)
{
//está sendo acessado de um dispositivo móvel
}
if (Request.Browser.JavaApplets)
{
//suporte a Java
}
Bem pessoal, é isso. Com cautela você pode utilizar Cookies em aplicações web e tirar bom proveito deste recurso de persistência de informação.
Espero que tenham gostado
Um abraço e até a próxima
Referências:
http://msdn.microsoft.com/pt-br/library/system.web.httpcookie.aspx
http://msdn.microsoft.com/en-us/library/system.web.httpcookie_members.aspx