ASP.NET Captcha Yapımı

Merhabalar;

Sanırım herkes saldırılara maruz kalmıştır. Formlarımızı korumaya almak için captchalara ihtiyacımız vardır. Sözü fazla uzatmadan direkt olarak konuya giriyorum.

Aşağıdaki kodu page load event’imiza yerlestiriyoruz.


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CaptchaOlustur(100, 40, "Tahoma", 14, 20, 10, Server.MapPath("~/arkaplan.png"));
}
}

Hemen sonrasında captchamızı oluşran metodumuzu yazıyoruz.


/// <summary>
/// Captcha Resim Olusturma. ViewState'de tutar.
/// </summary>
/// <param name="H">Yüksekligi</param>
/// <param name="W">Genisligi</param>
/// <param name="fonts">Fontu</param>
/// <param name="Punto">Puntosu</param>
/// <param name="X">Cizecegi X ekseni (pixel)</param>
/// <param name="Y">Cizecegi Y ekseni (pixel)</param>
private void CaptchaOlustur(int H, int W, string fonts, int Punto, int X, int Y, string arkaplanResmi)
{
Bitmap bmp = new Bitmap(H, W);
Graphics g = Graphics.FromImage(bmp);
Font font = new Font(fonts, Punto);
Random r = new Random();
int sayi = r.Next(1000,99999);
ViewState["captcha"] = sayi;
System.Drawing.Image img = System.Drawing.Image.FromFile(arkaplanResmi); //Arka plan resmi captcha kodunun kolayca okunmasını önlemek için. Ne kadar karışık bir resim olursa o kadar iyidir.

g.DrawImage(img, 1, 1);

g.DrawString(sayi.ToString(), font, Brushes.DarkRed, X, Y);

g.CompositingQuality = CompositingQuality.HighQuality;

bmp.Save(Server.MapPath("images/captcha.png"), ImageFormat.Png);
}

Projenin kodlarını aşağıdaki linkten indirebilirsiniz.

http://www.yazilimcinotlari.com/Captcha.rar

Rar şifresi: yazilimcinotlari.com

Bol kodlu günler…

6,206 total views, 2 views today

No Comments

Leave a Comment

Ulaşım için: Facebook: /ganigani Twitter: @abdulgani_demir


*

%d blogcu bunu beğendi: