Explanation:
We were trying to find a solution to block bots adding data to your database using C#. There are many spammers around now days trying to add advertisements. This can also be dangerous for your database if the data was malicious. This is the quick solution I found.
This Article and the Code is really easy to understand and self explainatry. If still you want some more Explanation please use the Forum or just leave a Comment.
1) First create an image tag in the webform that has the submit form. 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 ());
}
//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";
}
}
|