Asp.Net Doğrulama Resmi (Captcha Kontrolü)


Websitemizdeki iletişim formlarımızı, robot yazılımların otomatik spam maillerine ya da saldırılarına karşı korumak için captcha kontrolü yapıyoruz.

Captcha dediğmiz bildiğimiz güvenlik kodunun resim halinde yazılmışı. Açılımı da Completely Automated Public Turing test to tell Computers and Humans Apart imiş.

Araştırmalarım sonucu temiz çalışan kısa bir kod parçası buldum biraz güncelleyip eklemeler yaparak proejeye ekledim.

İlk olarak yeni bir sayfa oluşturuyoruz. captcha.aspx olabilir. Page loadın içine aşağıdaki kodu yapıştırıyoruz.


protected void Page_Load(object sender, EventArgs e)
{
Bitmap resim = new Bitmap(150, 20);
string harfler = "ABCDEFGHIJKLMNOPRSTYUVYZWXQ1234567890";
Graphics grafik = Graphics.FromImage(resim);
grafik.FillRectangle(new SolidBrush(Color.FromArgb(200, 221, 236, 250)), 0, 0, 150, 20);
Font yazi_tipi = new Font("Verdana", 12, FontStyle.Bold);
Random rastgele = new Random();
SolidBrush firca = new SolidBrush(Color.Navy);
string karakter = "";
string kod = "";
for (int i = 0; i < 5; i++)
{
karakter = harfler[rastgele.Next(0, harfler.Length - 1)].ToString();
grafik.DrawString(karakter, yazi_tipi, firca, i * 28 + 5, 0);
kod += karakter;
}
resim.Save(Response.OutputStream, ImageFormat.Jpeg);
Session["kod"] = kod;
}

Karakterleri sessionumuzda kod parametresiyle olarak tutuyoruz.

Sonrasında gerekli sayfamızda çağırarak kullanıcının girdiği değer ile karşılaştırıyoruz.

codeControl methodu; texboxtan girilen değerle, güvenlik kodumuz  eşleşiyorsa bize true değerini döndürecek.


public bool codeControl()
{

if(TextBox7.Text==Session["kod"].ToString())
{

return true;
}

Label1.Text = "Kodu Hatalı Girdiniz.";
Label1.CssClass = "kirmizi";
TextBox7.Text = "";
TextBox7.Focus();
return false;

}

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s