
Merhabalar, İndex actionu post olduğunda yani kullanıcı bilgilerini girip giriş yapmaya çalıştığında aşağıdaki kod bloğu çalışacaktır. Aşağıdaki kod bloğunda giriş kontrolü yapıldıktan sonra yeni bir çerez oluşturuluyor ve bilgiler sessiona atılıyor. Kullanıcı çıkış yapmak istediğinde Logout actionu çalışacaktır. Bu actionda ise çerezdeki session ve ve çerezdeki bilgiler silinerek çıkış işlemi gerçekleştirilecektir. Bu yazımız ile Asp.Net Mvc ile cookie oluşturma, cookie tanıma ve cookie silme işlemlerini yüzeysel bir şekilde ele almış olduk.
Bu yazımızda Mvc ile login ekranının vazgeçilmezi olan beni hatırla seçeneğinin eklenmesi ve çalıştırılmasını ele alacağız.
Aşağıdaki kodlarda Ana kontrollerdaki index actionı benim login yaptığım ekrandır. Login ekranında email, şifre ve beni hatırla seçeneği mevcuttur. Login ekranı get olduğunda ilk önce çerezimizin olup olmadığını kontrol ediyor çerez varsa çerezdeki bilgileri alıp sessiona atıyor. Çerez yok ise giriş ekranını gösteriyor. İçeriği aşağıdaki gibidir.
public ActionResult Index()
{
if (Request.Cookies["cerezim"] != null)
{
HttpCookie kayitlicerez = Request.Cookies["cerezim"];
Session["eposta"] = kayitlicerez.Values["eposta"];
Session["yetkiid"] = kayitlicerez.Values["yetkiid"];
Session["adsoyad"] = kayitlicerez.Values["adsoyad"];
return RedirectToAction("Panel", "Ana");
}
return View();
}
[HttpPost]
public ActionResult Index(string Email, string Parola,bool? Benihatirla)
{
var login = db.yonetim.Where(a => a.Email == Email).SingleOrDefault();
if (login == null)
{
ViewBag.uyari = "E-Mail Adresinizi veya Şifrenizi Kontrol Ediniz.";
}
else if (login.Email == Email & login.Sifre == Parola)
{
if(Benihatirla==true)
{
HttpCookie cerez = new HttpCookie("cerezim");
cerez.Values.Add("eposta", Email);
cerez.Values.Add("sifre", Parola);
cerez.Values.Add("yetkiid", login.Yetki);
cerez.Values.Add("adsoyad", login.AdiSoyadi);
cerez.Expires = DateTime.Now.AddDays(30);
Response.Cookies.Add(cerez);
}
Session["yetkiid"] = login.Yetki;
Session["adsoyad"] = login.AdiSoyadi;
return RedirectToAction("Panel", "Ana");
}
else
{
ViewBag.uyari = "E-Mail Adresinizi veya Şifrenizi Kontrol Ediniz";
return View();
}
return View();
}
public ActionResult Logout()
{
Session["yetkiid"] = null;
Session.Abandon();
if (Request.Cookies["cerezim"] != null)
{
Response.Cookies["cerezim"].Expires = DateTime.Now.AddDays(-1);
}
return RedirectToAction("Index", "Ana");
}
Yorum