Menu ▼



Posted By :
avatarmrkraju
Total Views : 67202

Create your own captcha image generator in asp.net using c#.net

The below example will generate a captcha code with numbers and alphabets (small and capital letters). You can change the variable  “combinationvalue according to your requirement. 

Output of the below example:


Create two pages GenerateCaptcha.aspx and Registration.aspx

GenerateCaptcha.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="GenerateCaptcha.aspx.cs" Inherits="GenerateCaptcha" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    </div>

    </form>

</body>

</html>

 

 

GenerateCaptcha.aspx.cs

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Drawing.Imaging;

 

public partial class GenerateCaptcha : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        Response.Clear();

        int height = 30;

        int width = 100;

        Bitmap bmp = new Bitmap(width, height);

 

        RectangleF rectf = new RectangleF(10, 5, 0, 0);

 

        Graphics g = Graphics.FromImage(bmp);

        g.Clear(Color.White);

        g.SmoothingMode = SmoothingMode.AntiAlias;

        g.InterpolationMode = InterpolationMode.HighQualityBicubic;

        g.PixelOffsetMode = PixelOffsetMode.HighQuality;

        g.DrawString(Session["captcha"].ToString(), new Font("Thaoma", 12, FontStyle.Italic), Brushes.Green, rectf);

        g.DrawRectangle(new Pen(Color.Red), 1, 1, width-2, height-2);

        g.Flush();

        Response.ContentType = "image/jpeg";

        bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

        g.Dispose();

        bmp.Dispose();

    }

}

 

 

Registration.aspx

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Registration.aspx.cs" Inherits="Registration" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:ScriptManager ID="SM1" runat="server">

        </asp:ScriptManager>

        <table style="border: solid 1px black; padding: 20px; position: relative; top: 50px;"

            align="center">

            <tr>

                <td>

                    Email ID :

                </td>

                <td>

                    <asp:TextBox ID="txtEmailID" runat="server" Width="200px"></asp:TextBox>

                </td>

            </tr>

            <tr>

                <td>

                    Password :

                </td>

                <td>

                    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" Width="200px"></asp:TextBox>

                </td>

            </tr>

            <tr>

                <td>

                    Confirm Password :

                </td>

                <td>

                    <asp:TextBox ID="txtConfirmPassword" runat="server" TextMode="Password" Width="200px"></asp:TextBox>

                </td>

            </tr>

            <tr>

                <td>

                    Enter Below Code :

                </td>

                <td>

                    <asp:TextBox ID="txtCaptcha" runat="server" Width="200px"></asp:TextBox>

                </td>

            </tr>

            <tr>

                <td>

                </td>

                <td valign="middle">

                    <asp:UpdatePanel ID="UP1" runat="server">

                        <ContentTemplate>

                            <table>

                                <tr>

                                    <td style="height: 50px; width:100px;">

                                        <asp:Image ID="imgCaptcha" runat="server" />

                                    </td>

                                    <td valign="middle">

                                        <asp:Button ID="btnRefresh" runat="server" Text="Refresh" OnClick="btnRefresh_Click" />

                                    </td>

                                </tr>

                            </table>

                        </ContentTemplate>

                    </asp:UpdatePanel>

                </td>

            </tr>

            <tr>

                <td colspan="2" align="center">

                    <asp:Button ID="btnRegiser" runat="server" Text="Register" OnClick="btnRegister_Click" />

                </td>

            </tr>

        </table>

    </div>

    </form>

</body>

</html>

  

Registration.aspx.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Text;

 

public partial class Registration : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            FillCapctha();

        }

    }

 

    void FillCapctha()

    {

        try

        {

            Random random = new Random();

            string combination = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

            StringBuilder captcha = new StringBuilder();

            for (int i = 0; i < 6; i++)

                captcha.Append(combination[random.Next(combination.Length)]);

            Session["captcha"] = captcha.ToString();

            imgCaptcha.ImageUrl = "GenerateCaptcha.aspx?" + DateTime.Now.Ticks.ToString();

        }

        catch

        {

 

            throw;

        }

    }

 

    protected void btnRefresh_Click(object sender, EventArgs e)

    {

        FillCapctha();

    }

 

    protected void btnRegister_Click(object sender, EventArgs e)

    {

        if (Session["captcha"].ToString() != txtCaptcha.Text)

            Response.Write("Invalid Captcha Code");

        else

            Response.Write("Valid Captcha Code");

        FillCapctha();

    }

 

}

 








comments powered by Disqus


Search dotnetlearners.com