Cookie ile Web site giriş kodları
Merhaba, bugün session'dan sonra farklı bir giriş yöntemini göstereceğim. Cookie uzun süreli giriş yapmaya yardımcı olur.
İlk önce Cookie oluşturuyoruz
[HttpPost] public ActionResult
Login(string Parola, int BinaID, string KullaniciAdi, bool? remember) { string p =
Crypto.Hash(Parola, "MD5"); var a =
db.KullanicilarViews.Where(x => x.KullaniciAdi == KullaniciAdi &&
x.Parola == p).FirstOrDefault(); if (a != null) {
var tarih =
a.SozlesmeBitisTarihi;
HttpCookie userCookie
= new HttpCookie("KullaniciBilgileri");
userCookie.Values["KullaniciID"] = a.KullaniciID.ToString(); userCookie.Values["AdSoyad"] = HttpUtility.UrlEncode(a.AdSoyad.ToString());
userCookie.Values["KullaniciAdi"] = HttpUtility.UrlEncode(a.KullaniciAdi.ToString());
userCookie.Values["LisansTarih"] =
HttpUtility.UrlEncode(tarih.Value.ToString("dd/MM/yyyy"));
if (remember !=
null) { userCookie.Expires =
DateTime.Now.AddDays(30); // 1 ay } else {
userCookie.Expires = DateTime.Now.AddDays(1); // 1 gün }
// Cookie'yi ekle
Response.Cookies.Add(userCookie); return
RedirectToAction("Index", "AnaSayfa"); } else { ViewBag.Uyari =
"Kullanıcı Adı, Şifre veya bina yanlış"; return View(); }
} |
Bu giriş kodundan sonra layoutta giriş yapılıp yapılmadığını kontrol edelim
@if (Request.Cookies["KullaniciBilgileri"] == null ||
Request.Cookies["KullaniciBilgileri"]["KullaniciID"] ==
null) {
Response.Redirect("/Anasayfa/Login"); } |
Daha sonra Cookie'nin layouta aktarımını yapalım (Türkçe karakterlerde bozulduğu için bu yöntemi kullanın)
@{ string kullaniciAdi =
HttpUtility.UrlDecode(Request.Cookies["KullaniciBilgileri"]["KullaniciAdi"]); string adSoyad =
HttpUtility.UrlDecode(Request.Cookies["KullaniciBilgileri"]["AdSoyad"]); <h6>@adSoyad</h6> <h6>@kullaniciAdi</h6> |
Şimdi ise controller'da kullanmayı görelim
public ActionResult Kullanicilar() { if
(Request.Cookies["KullaniciBilgileri"] == null) {
return
RedirectToAction("Login", "AnaSayfa"); } HttpCookie userCookie = Request.Cookies["KullaniciBilgileri"]; int KullaniciID =
Convert.ToInt32(userCookie.Values["KullaniciID"]); ViewBag.Tahsilatlar = db.KullanicilarViews.Where(x => x.KullaniciID == KullaniciID).ToList(); return View();
} |
Hepsi bu kadardı.
Yorumlar
henüz yorum bulunamadı
Yorum Yap