Asp.Net Captcha - Güvenlik Kodu Üretmek

Asp.Net Captcha - Güvenlik Kodu Üretmek
Hazırladığımız web sitelerin güvenliğini arttırmak için kullanılan Güvenlik Kodu nasıl hazırlanır? Bu soruyu araştırıp sonunda kolay vede kullanışlı bir güvenlik kodu (captcha) uygulaması yazdım umarım işinizi görür.
Öncelikle 3 adet sayfa oluşturuyoruz:
1. Sayfamızda sadece oluşturulacak güvenlik kodunu hazırlamak için PageLoad kısmına aşağıdaki kodları giriyoruz. ve sayfamızın adını GuvenlikKodu.aspx olarak yapıp kayıt ediyoruz.

using System.Drawing;
using System.Drawing.Imaging;



 protected void Page_Load(object sender, EventArgs e)
    {
        Bitmap bmp = new Bitmap(115, 40);
        Graphics g = Graphics.FromImage(bmp);

        g.Clear(Color.Lavender);
        string randStr = RandomString(5);
        Session["capRand"] = randStr;
        g.DrawString(randStr, new Font("Comic Sanns MS", 15, FontStyle.Bold), new SolidBrush(Color.Black), 20, 0);
        g.DrawLine(new Pen(Color.Red, 1), 50, 10, 100, 100);
        g.DrawLine(new Pen(Color.Red, 1), 200, 10, 50, 50);
        Random rdm = new Random();
        for (int i=0; i< bmp.Width; i++)
        {
            for (int j=0; j            {
                if (rdm.Next(4) == 1)
                    bmp.SetPixel(i, j, Color.Black);
            }
        }
        bmp.Save(Response.OutputStream, ImageFormat.Png);
    }
    public string RandomString(int loop)
    {
        string deger = "";
       
        string dizi = "ABCDEFGHIJKLMNOPRSTUVYZ0123456789";
        Random r = new Random();
        //Toplam 6 karakterden oluşan rastgele bir metin oluşturalım.
        for (int i = 0; i < 5; i++)
        {
            deger = deger + dizi[r.Next(0, 33)];
        }
        return deger;
    }


2. Sayfamızda kullanıcının güvenlik kodunu görmesi ve onu girmesi için ilgili nesneleri yerleştiriyoruz.
-1 adet TextBox (txtguvenkil)
-1 adet Button
-1 adet Label
-1 adette sayfamıza güvenlik kodunu göre bilmemiz için bir adet image nesnesi yerleştiriyoruz
yerleşimi yaptıktan sonra Properties ayarlarından imageurl adresini GuvenlikKodu.aspx olarak belirliyoruz
Sayfamızın button clik ine aşağıdaki kodu giriniz.

 protected void Button1_Click(object sender, EventArgs e)
    {
        string capRand = Session["capRand"].ToString();
        if (txttcno.Text == "1234" && txtguvenlik.Text == capRand)
            Response.Redirect("default.aspx"); //Yönlendirilecek sayfa
        else
            Label1.Text = "Güvenlik Kodu Hatalı"; // Hatalı giriş olması durumunda
        txtguvenlik.Text = "";

    }

3. Sayfamız verilerin doğru olması halinde gidilicek sayfa adını default.aspx yapalım ve olay bukadar :)

Kaynak kullandığım sayfa : http://www.gokhanakgol.com/2011/12/03/asp-net-captcha-ornegi/

Yorumlar

Bu blogdaki popüler yayınlar

Asp.Net ile Uyarı Mesajları Vermek (msgbox)

Asp.Net Eval Kullanımı

Asp.Net ile T.C. Kimlik Doğrulama (Mernis) Web Service ile