HTML-Kodu:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Güvenlik Kodu:<asp:Image ID="imgKod" runat="server" />
<br />
<br />
Güvenlik Kodunu Girin:<asp:TextBox ID="txtKontrolKodu" runat="server"></asp:TextBox>
<br />
<br />
<asp:Button ID="btnKontrol" runat="server" Text="Kontrol" />
<br />
<br />
<asp:Label ID="lblMesaj" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
HTML-Kodu:
protected v0id Page_Load(object sender, EventArgs e)
{
//İlk yüklemede doğrulama kodunu oluşturur.
if (!Page.IsPostBack)
{
ResimOlustur();
}
}
public v0id ResimOlustur()
{
string kod = "";
kod = RastgeleVeriUret();
//Üretilen kodu Session nesnesine aktarır.
Session.Add("kod", kod);
//Rastgele üretilen metini alıp resme dönüştürelim.
//boş bir resim dosyası oluştur.
Bitmap bmp = new Bitmap(100, 21);
//Graphics sınıfı ile resmin kontrolunu alır.
Graphics g = Graphics.FromImage(bmp);
//DrawString 20‘ye 0 kordinatına kodu‘u yazdırır.
g.DrawString(kod, new Font("Comic Sanns MS", 15), new SolidBrush(Color.Black), 20, 0);
//Resmi binary olarak alıp sayfaya yazdırmak ıcın MemoryStream kullandık.
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
var base64Data = Convert.ToBase64String(ms.ToArray());
imgKod.ImageUrl = "data:image/png;base64," + base64Data;
g.Dispose();
bmp.Dispose();
ms.Close();
ms.Dispose();
}
public string RastgeleVeriUret()
{
string deger="";
//Türkçe karakterleri kullanmaktan vazgeçtim.
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;
}
protected v0id btnKontrol_Click(object sender, EventArgs e)
{
//Bu kısımda da Session'daki değer ile kullanıcının resimde görerek girdiği kod karşılaştırılır.
if (txtKontrolKodu.Text == Session["kod"].ToString())
{
//Doğrulama kodu doğruysa çalıştırılacak kodlar
lblMesaj.Text = "Doğrulama Sağlandı!";
}
else
{
//Doğrulama kodu yanlışsa çalıştırılacak kodlar
lblMesaj.Text = "Doğrulama Kodu Yanlış!";
//Kullanıcının girdiği kod yanlışsa yeni bir resim ve session oluşturulur.
ResimOlustur();
}
}
Yukarıdaki kodlarda v0id yazan yerlerde 0 sayısını o harfi ile değiştirin