Asp.Net doğrulama kodu yapımı Captcha
April 2019 (0) Iptv 11/21/2024
Login işlemlerinde,üye kayıt işlemlerinde yer alan doğrulama kodlarını yapmak için öncelikle yeni bir web formu açıyoruz.Ben guvenlik.aspx adını verdim.Sayfamıza using atamalarını yapıyorum öncelikle.Şunları ekliyorum:
using System.Drawing;
using System.Drawing.Imaging;
Daha sonra asp.net projeme yeni bir klasör oluşturuyorum.Adı “images” olsun.Bu klasör altına doğrulama kodumuzun arkasında yer alacak resimi koyuyorum.Resim aşağıdadır:
Doğrulama kodunu yukarıdaki resmin üzerine yazacağım.Resmi images klasörü altına koyduktan sonra guvenlik.aspx sayfamın Page_Load methoduna şunları yazıyorum:
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bitmap = new Bitmap(Server.MapPath("images/codeback.jpg"));
Graphics security = Graphics.FromImage(bitmap);
string kod = new Random().Next(10000, 99999).ToString();
SolidBrush brush = new SolidBrush(Color.White);
security.DrawString(kod, new Font("Courier", 25, FontStyle.Bold), brush, new Point(10, 16));
bitmap.Save(Response.OutputStream, ImageFormat.Gif);
Response.ContentType = "image/jpeg";
}
Yukarıdaki kodlarda öncelikle bir bitmap oluşturdum.Bitmap için images klasörü altındaki codeback.jpg dosyasını kullandım.Daha sonra bu bitmap üzerinde işlemler yapabilmek için bir grafik arayüzü oluşturmam gerekli.security adında Graphics türünden bir instance oluşturdum.Daha sonra random sayı üretecek şekilde bir değer elde ediyorum.Oluşturduğum grafik arayüzünün DrawString methodu ile sayımı Font ,Brush ve yer aldığı Point değerleriyle birlikte parametre olarak veriyorum.Ve bitmapimi Repsonse.OutputStream ile ekrana gif olacak şekilde bastırıyorum.Tabiki Respone.ContentType ‘ı “image/jpeg” yapmamız gerekliki ekranda resmimiz görüksün.
Login işlemi yaptığım sayfada Image kontrolünün ImageUrl’sine guvenlik.aspx sayfasını yazıyorum:
<asp:Image ID="Image1" ImageUrl="~/guvenlik.aspx" runat="server" />
Çıktıya baktığımızda ve sayfayı sürekli yenilediğimizde doğrulama kodunun sürekli değiştiğini görmekteyiz.
Sonuç Çıktısı: