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.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo