Categorias

Solução para cookies não existentes no ASP.NET

No ASP.NET, quando se faz referência um cookie que não existe no código, é gerada uma exceção e uma mensagem de erro que é semelhante à que se segue é apresentada:

Objeto referência não definida para uma instância de um objeto System.NullReferenceException

Este comportamento ocorre quando é recebido um valor NULL quando se solicita um cookie que não existe no ASP.NET. Isto ocorre porque o comportamento de coleções no ASP.NET trabalha desta forma, já no ASP 3 (clássico), o objeto cookie quando não existe, devolve uma cadeia vazia.

Para resolver este comportamento é necessário verificar a existência de valores NULL que estão associados ao cookie.

Código em C#:

HttpCookie cookie = Request.Cookies["NomeDoCookie"];

if(cookie == null){
	//lblCookie representa um "WebForm Label Control"
	lblCookie.Text = "Cookie não existe.";
}
else{
	//lblCookie representa um "WebForm Label Control"
	lblCookie.Text = cookie.Value;
}




Código em VB.NET:

Dim cookie As HttpCookie = Request.Cookies("NomeDoCookie")

If cookie Is Nothing Then

    'lblCookie representa um "WebForm Label Control"
    lblCookie.Text = "Cookie não existe."
Else

    'lblCookie representa um "WebForm Label Control"
    lblCookie.Text = cookie.Value
End If