Resim Doğrulama Kodunun Hazırlanması.

Kodla Büyü

noktanet

Seçkin Üye
Seçkin Üye
Mesajlar
737
Herkezin işine yarayacağını düşünüyorum bende geçenlerde araştırıp buldum. En basit hali sanırım bu

Öncelikle Projemize Guvenlik.aspx şeklinde artık ne yapmak istiyorsak bi webform ekliyoruz.
oluşturmuş olduğumuz webformun page_load eventine gelerek aşağıdaki kodları yazıyoruz.

Kod:
 // Güvenlik kelimesinin uzunluğudur.
        const int UZUNLUK = 6;

        // Güvenlik kelimesinde kullanılacak karakterler dizesidir.
        string[] m_Karakterler = new string[] {
                    "A" , "B" , "C" , "D" , "E" , "F" , "G" , "H" , "I" ,
                    "J" , "K" , "L" , "M" , "N" , "O" , "P" , "Q" , "R" ,
                    "S" , "T" , "U" , "V" , "W" , "X" , "Y" , "Z" , "0" ,
                    "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9"
                };

        // Random olarak rakam oluşturabileceğimiz Random class'ının tanımlanmasıdır.
        Random m_Random = new Random();

        // Boş güvenlik kelimemizdir.
        string m_GuvenlikKelimesi = String.Empty;

        for (int i = 0; i < UZUNLUK; i++)
        {
            // Random oluşturulan rakamın index olarak kabul edilip, m_Karakterler dizesinden ilgili karakterin alındığı satırdır.
            m_GuvenlikKelimesi += m_Karakterler[m_Random.Next(m_Karakterler.Length - 1)];
        }

       [b] // Güvenlik kelimesinin Session'a eklendiği satırdır.
        Session.Add("GuvenlikKelimesi", m_GuvenlikKelimesi);[/b] //önemli olan bu kısım sanırsam çünkü resim doğrulama kodunun karşılaştırmasını yapabilmek için     //oluşturduğumuz karakterleri session nesnesine atıyoruz. daha sonra bunu resim doğrulama istediğimiz yerde karşılaştırarak robotların önüne geçmiş oluruz.

        // Resim çizme işleminin yapıldığı bölümdür.
        Bitmap m_Resim = new Bitmap(100, 25);
        Graphics m_Grafik = Graphics.FromImage(m_Resim);
        Font m_Font = new Font("Tahoma", 14, FontStyle.Bold);
        Brush m_FircaMavi = new SolidBrush(Color.Black);
        Brush m_FircaBeyaz = new SolidBrush(Color.White);

        m_Grafik.FillRectangle(m_FircaBeyaz, 0, 0, m_Resim.Width, m_Resim.Height);
        m_Grafik.DrawString(m_GuvenlikKelimesi, m_Font, m_FircaMavi, new PointF(2, 2));

        // Resmin ekrana gönderildiği bölümdür.
        Response.ContentType = "image/gif";
        m_Resim.Save(Response.OutputStream, ImageFormat.Gif);

Şimde gelelim bu resim doğrulama kodunu nasıl göstereceğimize .
Öncelikle Resim Doğrulaması Yaptıracağımız sayfaya bir image companenti ekliyoruz. bu companentin "imageurl" özelliğine Guvenlik.aspx sayfasını tanımlıyoruz bu şekilde kullancı artık nereye ekledi isek bu login sayfası olabilir. sayfa her refresh yapıldığnda farklı bir kod üretecektir.

şimdide kullanıcının girmiş olduğu karakterlerin ürettiğimiz kodla uyumlumu ona bakalım.
login sayfası için düşünürsek butonun click eventine gelerek aşağıdaki kodları yazıyoruz.

Kod:
 if (txtResimDogrulama.Text.ToUpper() == Session["GuvenlikKelimesi"].ToString()) // session nesnesine atamayı Guvenlik.aspx dosyasında yapmıştık.
        {
          Doğrulama kodu eşleşiyorsa yapılacak işlemler.
        }
        else
        {
             Doğrulama kodu eşleşmiyorsa yapılacak işlemler.
        }

kolay gelsin iyi akşamlar.
 
Bu arada komik gelecek belkide tam olarak doğru yazamadım resim doğrulama kodu şu şekilde birşey oluyor.
13pwy.png
 
Geri
Üst