Implementando um Captcha Básico em ASP.NET

Neste artigo mostraremos como implementar um captcha básico em uma aplicação WebForm com ASP.NET.

Olá pessoal, hoje mostraremos como implementar um captcha básico em uma aplicação WebForm com ASP.NET.

 

Para nosso exemplo, vamos criar uma nova ASP.NET WebApplication.

 

Após criada, crie uma nova página e chame-a de Captcha.aspx.

No evento OnLoad desta página, insira o seguinte código:

 

Bitmap objBMP = new System.Drawing.Bitmap(60, 20);

Graphics objGraphics = System.Drawing.Graphics.FromImage(objBMP);

objGraphics.Clear(Color.SkyBlue);

objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;

// Fonte configurada para ser usada no texto do captcha

Font objFont = new Font("Times New Roman", 10, FontStyle.Strikeout);

string captchaValue = "";

int[] valuesArray = new int[8];

int x;

//Cria o valor randomicamente e adiciona ao array

Random autoRand = new Random();

for (x = 0; x < 8; x++)

{

valuesArray[x] = System.Convert.ToInt32(autoRand.Next(0, 9));

captchaValue += (valuesArray[x].ToString());

}

//Adiciona o valor gerado para o captcha na sessão

//para ser validado posteriormente

Session.Add("CaptchaValue", captchaValue);

//Desenha a imagem com o nosso texto

objGraphics.DrawString(captchaValue, objFont, Brushes.White, 3, 3);

//Determina o tipo de conteúdo da imagem do captcha

Response.ContentType = "image/GIF";

//Salva em stream

objBMP.Save(Response.OutputStream, ImageFormat.Gif);

//Libera os objeto da memória pois os mesmos não são mais necessários

objFont.Dispose();

objGraphics.Dispose();

objBMP.Dispose();

 

O código acima é o responsável por gerar o valor randomicamente para nosso captcha e renderizar o mesmo em forma de imagem.

 

Agora, na página Default.aspx, inclua a seguinte Tag:

 

<IMG height="30" alt="" src="Captcha.aspx" width="80">

 

Esta tag, exibirá a imagem do captcha gerada no OnLoad da página Captcha.aspx.

 

Adicione mais um textBox e um botão no formulário.

No evento OnClick do botão, insira o seguinte código:

 

//Verifica se o valor digitado é o mesmo que foi gerado

//pela página do captcha

if (TextBox1.Text == Session["CaptchaValue"].ToString())

{

Label1.Text = "Valor digitado está OK";

}

else

{

Label1.Text = "Valor digitado está errado";

}

 

Pronto pessoal, aí está nosso captcha básico implementado em ASP.Net.

 

Vamos ficando por aqui, espero que tenham gostado e que as informações passadas sejam úteis no seu dia-a-dia.

 

Um grande abraço.

Ricardo Coelho.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados