Simple
Text to image generator to block bots submitting to your database with ASP.Net
Hi
there, I was trying to find a solution to block spammers adding data to your
database using C#. This is the quick solution I found.
1)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”
2)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();
}
}
3) 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";
}
}