MVC

Session (Login & Logout)

Kullanıcı girişi, buna bağlı olarak kullanıcı giriş formunu kapatarak “kullanıcı sepeti” gibi özellikleri açan özellik “Session” sayesinde olur. Türkçe karşılığı “oturum” ‘dur. Sunucu tarafında saklanır. “Controller” tarafında işlenir.

Kullanıcı giriş yapmadan sayfayı çalıştırdığında oturum kodu verilir ve tarayıcı kapanana kadar ya da belirlenen süre sonunda (varsayılan 20 dk.) otomatik olarak geçerliliğini yitirir.

Session["sessionName"] = "sessionValue"

// veya

Session.Add(string "sessionName", object "sessionValue");

yukarıdaki kod satırlarından ikisi de oturum oluşturmaya yarar. Oturumun farklı bir kullanım şekli ise farklı veriler depolama üzerinedir. Örneğin;

Session["sonZiyaretEdilenSayfa"] = "http://www.buyukculhaci.com/link_shortener/"

// veya

Session.Add(string "secilenKoltuk" ,object "5,6");
//Session verilerini sadece sunucu tarafında değiştirebiliriz.
//istemci tarafında yalnızca okuyabiliriz. Yani koltuk numarası
//seçilirse bunu get/post gibi başka yöntemlerle göndererek
//sunucu tarafında "secilenKoltuk" oturum değişkenine atayıp sayfanın
//yenilenmesiyle okuyabiliriz.
// Oturumu silmek istersek
Session.Remove("sessionName");
 
// ya da oturum içindeki tüm bilgileri silmek istersek aşağıdaki kodlardan birini kullanmalıyız
Session.Clear();
Session.RemoveAll();

Session.RemoveAt(int sessionIndex);
//Session da bir değişken olduğu için içindeki veriyi okuyabiliriz.
string veri = Session["sessionName"].ToString();
[HttpPost]
  public ActionResult Index(string uName,string uPass)
  {     
   Session["user"] = uName;
   return View();
  }
@if (Session["user"] == null)
{
    //kullanıcının giriş yapıp yapmadığını kontrol ettirerek
    //burada giriş form çıkartırız.
}
else
{
    //eğer giriş yapmışsa ismini yazdırırız.
    @Session["user"].ToString() <p>olarak giriş yaptınız.</p>
}

Ayrıca kendi belirleyebileceğiniz bir değişken şeklinde de taşıyabilme yollarınız da mevcut.

public sealed class HttpSessionState : ICollection, IEnumerable
{
    private IHttpSessionState _container;
...
    public void Add(string name, object value)
    {
        this._container[name] = value;
    }

    public object this[string name]
    {
        get
        {
            return this._container[name];
        }
        set
        {
            this._container[name] = value;
        }
    }
...
}
Yazı oluşturuldu 38

Bir cevap yazın

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

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön