Son Haberler
Anasayfa / Yazılım / ASP.NET / Kullanıcı Giriş Paneli Örneği ? 3

Kullanıcı Giriş Paneli Örneği ? 3

Bu yazıyı okumadan önce aşağıdaki yazıya göz atınız.

Kullanıcı Giriş Paneli Örneği ? 2

Bu yazımda Response.Redirect metoduna değinmek istiyorum. Response.Redirect metodu ile bir sayfadan başka bir sayfaya yönlenebiliriz. Yani bu metot yönlendirme işlemi yapmaktadır. Uygulamamızda şimdi girişi doğru yaptıktan sonra label kontrolünde giriş başarılı yerine, kullanıcının başka bir sayfaya yönlenmesini sağlayalım.

Uygulamamıza bir adet daha WEB form ekleyelim. Bu web formun adı Default2 olsun. Default2.aspx sayfamın page_load olayında aşağıdaki kodu yazıyorum.

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>





    


    

Default2.aspx.cs :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("Girişiniz başarılı bir şekilde gerçekleştirildi");
    }
}

Daha sonra Default.aspx.cs kısmında kodlarımı aşağıdaki şekilde düzenliyorum :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnGiris_Click(object sender, EventArgs e)
    {
        //daha önceden hata mesajı aldı isem bunu temizlemek için her butona basılta lblmesaj kontrolümü sıfırlıyorum
        lblMesaj.Text = "";
        //ad alanını kontrol ediyorum eğer boşsa uyarı verdiriyorum.
        if (txtAd.Text == "")
        {
            lblAd.Text = "Lütfen kullanıcı adınızı giriniz!";
        }
            //ad alanında sorun yoksa, şifre alanını kontrol ediyorum, daha önceden uyarı vermiş ise bunu siliyorum.
        else
        {
            lblAd.Text = "";
            //şifre alanı boş ise uyarı verdiriyorum.
            if (txtSifre.Text == "")
            {
                lblSifre.Text = "Lütfen şifrenizi giriniz!";
            }
                //ad ve şifre ikisi de girilmişse artık boş geçme durumu söz konusu değil, alttaki else bloğum çalışır.

            else
            {
                //önceden hata vermişse, temizliyorum.
                lblSifre.Text = "";
                //FileStream class kullanabilmek için öncelikle namespace olarak en üste System.IO tanımlıyorum
                //FileStream classımdan bir instance alıyorum ve dosyamın yolunu server.mappath metodu ile gösteriyorum
                //Dosyamda okuma işlemi yapacağım için FileMode.Open diyorum. Erişim ise Read.
                FileStream fs = new FileStream(Server.MapPath("TextFile.txt"),FileMode.Open,FileAccess.Read);
                //byte türünde text dosyaları okumak için StreamReader nesnesini kullanıyorum, fs'yi buna bağlıyorum
                StreamReader sr = new StreamReader(fs);
                //kullanıcı giriş bilgisinin durumunu burada tutacağım, ilk anda false değerini veriyorum.
                bool girisIslemi = false;
                //streamReader okumaya devam ettikçe while döngüsü içindeki işlemleri yap
                while (sr.Peek() != -1)
                {
                    //satır satır okurken her satırdaki bilgiyi değişkene alıyorum
                    string sbilgi = sr.ReadLine();
                    //kullanıcı adı ve şifrem arasında boşluk vardı, bu boşluk karakterinin indeksini buluyorum
                    int bolunecekKelime = sbilgi.IndexOf(" ");
                    //bulmuş olduğum indeks noya göre kullanıcı ad ve şifreyi bölüyorum, çünkü tek satırdalar.
                    string ad = sbilgi.Substring(0,bolunecekKelime);
                    //textboxa girilen kullanıcı adı ile satırdaki kullanıcı adı eşleşiyor mu, kontrol ediyorum
                    if(txtAd.Text == ad)
                    {
                        string sifre = sbilgi.Substring(bolunecekKelime + 1);
                        //textboxa girilen şifre ile satırdaki şifreler eşleşiyormu kontrol ediyorum.
                        if (txtSifre.Text == sifre)
                        {
                            //kullanıcı adı ve şifre doğru olunca admin olarak oturum açtırıyorum, giriş işlemi true diyorum
                            //çünkü daha sonra lbmmesaj kontrolümde mesaj vereceğim, işlem doğru diye.
                            Session["admin"] = ad;
                            girisIslemi = true;
                            //işlemim bitsin diye döngüden çıkıyorum çünkü diyelim ki ilk satırda doğru yakalandı,
                            //devam etmesine artık gerek kalmaz.
                            break;
                        }                       

                    }
                        //kullanıcı adı veya şifrem ya da her ikisi satırdakiler ile uyuşmuyorsa lblmesaj kontrolümdeki bilgi
                        //için false diyorum

                    else
                    {
                        girisIslemi = false;
                    }
                }
                //giriş işlemim başarılı ise bu kısım çalışcak ve sıra ile nesnelerimi kapatıyorum, son açılan önce kapatılır
                if (girisIslemi)
                {
                    sr.Close();
                    fs.Close();
                    //Yönlendirmemi yapıyorum
                    Response.Redirect("Default2.aspx");
                }
                //giriş işlemim başarılı değilse bu kısım çalışcak ve sıra ile nesnelerimi kapatıyorum, son açılan önce kapatılır


                else
                {
                    sr.Close();
                    fs.Close();
                    lblMesaj.Text = "Giriş Başarısız";
                }
            }
        }

    }
}

İşlemim bu kadar basit, aşağıdaki linkten uygulamayı indirebilirsiniz.

Bir yorum

  1. yavv olmadı hoca bizi dcvucek cok korkuyorum yardım edin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir