HI
try this
- Create Captcha Image from random numbers and store that number in session variable, we have used Captcha.aspx page for the same.
- Use Captcha.aspx as source for the captcha image in Default.aspx page, i.e. for image tag give Captcha.aspx as SRC.
- On Submit click simply verify captcha entered by user and captcha in session.
Our folder structure is very simple, check out following image
http://4.bp.blogspot.com/_QxZLuRPbgeM/TNDvV3W7eLI/AAAAAAAAAUg/z6M1NRk6oC4/s1600/FolderStructure.bmp
To understand the way we have checked captcha, have look on HTML of Default.aspx page (Check out http://www.easy-share.com/1912843853/CaptchaInAsp.zip, for better understanding.)
http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#
- <div><table><tbody>
- <tr> <td>
-
- <img alt="Catptcha Text" src="Captcha.aspx"></td> </tr>
- <tr> <td>
-
- <asp:textbox id="txtCaptcha" runat="server"></asp:textbox></td> </tr>
- <tr> <td>
-
- <asp:button id="btnSubmit" onclick="btnSubmit_Click" runat="server" text="Submit"> </asp:button></td> </tr>
- </tbody></table></div>
Check out the way we have used Captcha.aspx page in image source.
On submit click we simply checks whether Captcha entered in "txtCaptcha"
is valid or not, we have following code for submit button clicked.
http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#
- protected void btnSubmit_Click(object sender, EventArgs e)
- {
- if (Session["Captcha"] != null)
- {
- if (txtCaptcha.Text == Session["Captcha"].ToString())
- {
- Response.Redirect("RedirectPage.aspx");
- }
- else
- {
- Response.Write("Please Enter Valid Captcha code");
- txtCaptcha.Text = "";
- }
- }
- else
- {
- Response.Write("Session Expired, please re-enter Captcha.");
- }
- }
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (Session["Captcha"] != null)
{
if (txtCaptcha.Text == Session["Captcha"].ToString())
{
Response.Redirect("RedirectPage.aspx");
}
else
{
Response.Write("Please Enter Valid Captcha code");
txtCaptcha.Text = "";
}
}
else
{
Response.Write("Session Expired, please re-enter Captcha.");
}
}
Now what remains is the logic for Generate captcha image, we don't have
any HTML tags on captcha.aspx, we simply write following code for Binary
Image Generation and write it. We have used Random number; but we can
have our different logic for the same.
http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html#
- protected void Page_Load(object sender, EventArgs e)
- {
- Response.ContentType = "text/plain";
- Random random = new Random(DateTime.Now.Millisecond);
-
- int number = random.Next(100000);
-
- Session.Add("Captcha",number.ToString());
-
- System.Drawing.Bitmap bmpOut = new Bitmap(100, 50);
-
- Graphics graphics = Graphics.FromImage(bmpOut);
-
- graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
-
- graphics.FillRectangle(Brushes.Aquamarine, 0, 0, 100, 50);
-
- graphics.DrawString(number.ToString(), new Font("TimesNewRoman", 20), new SolidBrush(Color.Coral), 0, 0);
-
- MemoryStream memorystream = new MemoryStream();
-
- bmpOut.Save(memorystream, System.Drawing.Imaging.ImageFormat.Png);
-
- byte[] bmpBytes = memorystream.GetBuffer();
-
- bmpOut.Dispose();
-
- memorystream.Close();
-
- Response.BinaryWrite(bmpBytes);
-
- Response.End();
-
- }
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "text/plain";
Random random = new Random(DateTime.Now.Millisecond);
int number = random.Next(100000);
Session.Add("Captcha",number.ToString());
System.Drawing.Bitmap bmpOut = new Bitmap(100, 50);
Graphics graphics = Graphics.FromImage(bmpOut);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bilinear;
graphics.FillRectangle(Brushes.Aquamarine, 0, 0, 100, 50);
graphics.DrawString(number.ToString(), new Font("TimesNewRoman", 20), new SolidBrush(Color.Coral), 0, 0);
MemoryStream memorystream = new MemoryStream();
bmpOut.Save(memorystream, System.Drawing.Imaging.ImageFormat.Png);
byte[] bmpBytes = memorystream.GetBuffer();
bmpOut.Dispose();
memorystream.Close();
Response.BinaryWrite(bmpBytes);
Response.End();
}
refer http://aspdotnetmatters.blogspot.com/2010/11/generate-captcha-image-in-aspnet-simple.html