ASP.NET ‘ te Güvenlik Kodu Oluşturma

09 Haziran 2008 – 00:59

Merhaba arkadaşlar geçen seferki  makalemizde rast gele sayıların nasıl oluşturulacağına değinmiştik. Şimdi bu oluşturduğumuz sayıları kullanarak web sayfalarında genellikle kullanılan güvenlik kodu uygulaması geliştirelim. Eğer resim kullanacaksak 0 dan 9 kadar rakamları resim şeklinde web sitemizin olduğu klasöre ekleyelim örneğin ana klasörümüzün altında gkod diye bir klasör

 tanımlayalım ve bu resimleri buraya ekleyelim. Tabi resimlerimizin isimleri 0.jpg 1.jpg tarzında olsun. Şimdi sayfamıza

Bir tablo ekleyip satır sayısını 1 kaçlı kod oluşturmak istiyorsak sütün sayısını da o kadar yapalım ben 4 lü oluşturacağım.

 

<table border=”0″ cellpadding=”0″ cellspacing=”0″>

        <tr>

        <td>

            <asp:Image ID=”Image1″ Height=”24px” Width=”20px” runat=”server” />

  </td>

        <td>

            <asp:Image ID=”Image2″ Height=”24px” Width=”20px” runat=”server” />

  </td>

        <td>

            <asp:Image ID=”Image3″ Height=”24px” Width=”20px” runat=”server” />

  </td>

       

  <td>

            <asp:Image ID=”Image4″ Height=”24px” Width=”20px” runat=”server” />

  </td>

  </tr>

        </table>

Efet şimdi tablomuzu oluşturduk ve resimlerimiz ekledik. Şimdi kodumuzu yazmaya başlayalım. Güvenlik kodu sayfa ilk açılırken yüklenmesi gerektiğinden dolayı kod kısmımızda pageload ksımına yazıyoruz. Ben pageload kısmının pek karışmasını şstemedğim için bu işlem için bir metod yazacağım ve işlemleri orada yaptıracağım.

 

protected void Page_Load(object sender, EventArgs e)

    {       

            gkodolustur();

       

    }

 

Burada gkoduolustur diye tanımladığım metodu çağıttırdım. Şimdi sayfam yüklenirken bu metodtaki işlemleri yapacak. Bakalım neler var bunun içinde

 

public void gkodolustur()

    {

        String uyegkod;

  int a, b, c;

        Random rnd1 = new Random();

        Random rnd2 = new Random();

        Random rnd3 = new Random();

        Random rnd4 = new Random();

        a = rnd1.Next(0,9);

        b = rnd2.Next(0,9);

        c = rnd3.Next(0, 9);

        d = rnd4.Next(0, 9);

 

    

  Image1.ImageUrl = “gkod/” + a + “.jpg”;

        Image2.ImageUrl = “gkod/” + b + “.jpg”;

        Image3.ImageUrl = “gkod/” + c + “.jpg”;

        Image4.ImageUrl = ”gkod/” + d + ”.jpg”;

        uyegkod = a.ToString() + b.ToString()+ c.ToString() + d.ToString();

 

        if (!IsPostBack)

        {

            HiddenField1.Value = uyegkod;

 

        }

   

    }

 

Şimdi işlemlerimizi sırasıya anlatalım. İşlemimizin ilk asamağı tanıdık geliyormu daha önce rast gele sayıları anlatırken kullanmıştık Random nesne için rnd adında bir değişken tanımladık kaç tane değişkenimiz varsa o kadar değişkenlerimiz tanımlıyoruz. Şimdi intiger tipinde 4 tanede değişkenimizi tanımladık ve bu değişkenlerin değerini 0,9 arasında bir değere Random nesnesi kullanarak eşitledik. Tabi ki değişkenlerimiz 0 ve 9 değerinide alabiliyorlar. Şimdi sıra resimlerimizi çağırmaya geldi resimlerimizin urlsini ilk başta 0 dan 9 kadar olan resimleri koyduğumuz klasorun ismini sonra hangi resimi çağırmak istiyosak onu değişkeni ve en sonunda resimlerimizin uzantısını çağırıyoruz. Resimlerimiz sayfamızda görüldü. Şimdi yapmamız gereken sayılarımızı birleştirip string tipinde bir değişkene atmamız. Çünki kullanıcı textbox a girerken 4 haneli olarak girecek son satırımızda 4 ayrı değişkenimizin değerini uyegkod adlı değişkenimize eşitliyoruz. En son yaptığımız olaysa kullanıcı sayfada yaptığı işlemi onaylamak için bir butona bastığında sayfaya yenileniyor ve bu yenilenme sonucunda bizim oluşturduğumuz güvenlik koduda değişiyor ama kullanıcı eski kodu yazdığından güvenlik kodları birbirleriyle eşleşmiyor. Bu sorunu çözmek için hiddenfield kullanıyoruz ve bunun değerine bizim uyegkod ta tuttuğumuz değeri aktarıyoruz. Sayfa güncellense bile hiddenfield in valuesi değişmiyor.

Peki güvenlik kodumzu nasıl kontrol ettirecez tabi ki hemen cevapladınız if koşuluyla oda şöyle basitce gösterecek olursak

 

if(guvenlikkodtxt.text==hiddenfield.value)

{

 

//Burayada yapmasını istediğimiz işlem

//ve sona hani demiştik ya sayfa yenilendiğinde

//yeni kod oluşturuluyo diye

//üst üste kayıt eklemek isteyen kullanıcı

//sayfada görülen kodu yazacaktır

//ama biz hiddenfield in valuesini ispostback le sabitlemiştik

// girdiği kod hep eski kodla karşılaştırılacağı için

//hata verecektir

//onun için yaptırmak istediğimiz işlemlerimiz bittikten sonra

//hiddenfield in value sini yeniden

//yeni üretilen uyegkod değişkenine eşitlemem lazım

//diyeliki yaptıracağım işlemler burada bitti

Hiddenfield.value=uyegkod;

//evet eşitlemede bitti artık hiddenfield sayfada görülen değere

//eşitlenmiş olduk

 

}

 

else

{

Response.write(“Girdiğiniz Güvenlik Kodu hatalı ”);

}

 

Bir sonraki makalede görüşmek üzere.

 

Bookmark and Share

Post a Comment

Subscribe without commenting