Últimamente estos código numéricos se utilizan mucho a la hora de rellenar formularios de todo tipo gracias a los spammers y robots que graban en automáticamente. Estos códigos captcha son fáciles de generar a través de un script en c#.
En el ejemplo vamos a generar un código numérico de 5 cifras y una letra todo de forma aleatoria. Para esto creamos una página .aspx e incluimos una imagen:
<asp:Image ID="Image1" ImageUrl="captcha.ashx" runat="server" />
Lo primero que vemos es que la URL de la imagen es un script captcha.ashx (el tipo de página es un controlador genérico) y en este script escribiremos el código para generar la imagen. El código es el siguiente:Decimos al script que lo que devuelve por pantalla es una imagen
context.Response.ContentType = "image/GIF";
Creamos la imagenBitmap imagen_GIF = new System.Drawing.Bitmap(80, 30);
Graphics grafico = System.Drawing.Graphics.FromImage(imagen_GIF);
grafico.Clear(Color.Gainsboro);
Font tipo_fuente = new Font("Comic Sans", 12, FontStyle.Bold);
string randomNum = string.Empty;
Random autoRand = new Random();
for (int x = 0; x < 5; x++) {
randomNum += System.Convert.ToInt32(autoRand.Next(0, 9)).ToString();
}
int i_letra = System.Convert.ToInt32(autoRand.Next(65, 90));
Convertimos el numero obtenido en letrastring letra = ((char)i_letra).ToString();
randomNum += letra;
context.Session["RandomNumero"] = randomNum;
grafico.DrawString(randomNum, tipo_fuente, Brushes.Black, 5, 5);
imagen_GIF.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
Como podéis ver el código para genera la imagen es sencillo y la imagen quedaría así:Le ponemos una caja de texto y un botón para validar lo entrado en la caja de texto y ya tenemos el código captcha funcionando.
Y esto es todo, tenéis el código para bajaros en c#
Enlaces relacionadas:
Código del artículo
Saludos,
Alex.