Simple Captcha with ASP.NET






2.68/5 (13 votes)
Aug 5, 2005

74385
Simple text to image generator to block spammers inserting data to your database, with ASP.NET.
Introduction
I was trying to find a solution to block spammers adding data to the database, using C#. This is the quick solution I found.
- First create an image tag in the webform that has the submit form.
<IMG height="30" alt="" src="Turing.aspx" width="80">
As you see, the source for the picture will be a file called “Turing.aspx”.
- Later, create the webform “Turing.aspx” with the code below:
public class Turing1 : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { Bitmap objBMP =new System.Drawing.Bitmap(60,20); Graphics objGraphics = System.Drawing.Graphics.FromImage(objBMP); objGraphics.Clear(Color.Green); objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias; //' Configure font to use for text Font objFont = new Font("Arial", 8, FontStyle.Bold); string randomStr=""; int[] myIntArray = new int[5] ; int x; //That is to create the random # and add it to our string Random autoRand = new Random(); for (x=0;x<5;x++) { myIntArray[x] = System.Convert.ToInt32 (autoRand.Next(0,9)); randomStr+= (myIntArray[x].ToString ()); } //This is to add the string to session cookie, to be compared later Session.Add("randomStr",randomStr); //' Write out the text objGraphics.DrawString(randomStr, objFont, Brushes.White, 3, 3); //' Set the content type and return the image Response.ContentType = "image/GIF"; objBMP.Save(Response.OutputStream, ImageFormat.Gif); objFont.Dispose(); objGraphics.Dispose(); objBMP.Dispose(); } }
- And this is the code for the Submit button on the main form:
private void btnSubmit_ServerClick(object sender, System.EventArgs e) { if (Page.IsValid && (txtTuring.Value.ToString () == Session["randomStr"].ToString ())) { // The Code to insert data } else { Label1.Text ="Please enter info correctly"; } }