Asp.NET MVC Cookie Oluşturma ve Silme

Merhaba,

Önceki yazılarımdan Asp.NET Cookie Kullanımı başlıklı içeriğimizde Asp.NET mimarisinde Cookie yapısının nasıl kullanıldığını irdelemiştik. Şimdi ise Asp.NET MVC mimarisi üzerinde konuyu ele alacak ve asıl önemli olan Cookie kaydını silme işlemini konuşacağız.

Öncelikle hemen Cookie işlemlerimizi yaptığımız sınıfımızı aşağıya alalım.

    public static class CookieKontrol
    {
        static public void CookieKaydet()
        {
            HttpCookie Cookie = null;
            if (HttpContext.Current.Response.Cookies["OrnekCookie"] != null)
                //Cookie varsa devam.
                Cookie = HttpContext.Current.Response.Cookies["OrnekCookie"];
            else
                //Yoksa oluşturuyoruz.
                Cookie = new HttpCookie("OrnekCookie");

            Cookie.Expires = DateTime.Now.AddDays(3);

            Cookie["Veri1"] = "Veri1";
            Cookie["Veri2"] = "Veri2";
            Cookie["Veri3"] = "Veri3";

            HttpContext.Current.Response.Cookies.Add(Cookie);
        }

        static public HttpCookie CookieGetir()
        {
            if (HttpContext.Current.Request.Cookies["OrnekCookie"] != null)
                return HttpContext.Current.Request.Cookies["OrnekCookie"];
            else
                return null;
        }

        static public void CookieSil() => HttpContext.Current.Response.Cookies["OrnekCookie"].Expires = DateTime.Now.AddDays(-1);
    }

Görüldüğü üzere Asp.NET MVC mimarisinde sınıflardan Cookie yapılarına HttpContext.Current.[Response yahut Request].Cookies komutuyla erişmekteyiz. Eğer ki, Cookie yeni oluşturulacak veyahut var olan silinecek ise Response üzerinden, yok eğervar olana erişilecek ve kullanılacaksa Request üzerinden işlem yapmamız yeterli olacaktır.

Ayrıca var olan bir Cookie’yi silmek istiyorsak eğer Expires özelliğine verilecek tarihsel verinin -1 olarak ayarlanması yeterlidir.

Şimdi bu sınıfı kullanacağımız “(Home)Controller.cs” sınıfını inşa edelim.

    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult CookieKaydet()
        {
            CookieKontrol.CookieKaydet();
            return RedirectToAction("Index");
        }
        public ActionResult CookieSil()
        {
            CookieKontrol.CookieSil();
            return RedirectToAction("Index");
        }
    }

Şimdide Index.cshtml sayfamızda gerekli işlemleri gerçekleştirelim.

<!DOCTYPE html>
<html>
<head>
    <script src="~/Scripts/jquery-1.10.2.min.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
</head>
<body>
    @{
        HttpCookie Cookie = CookieKontrol.CookieGetir();
    }

    @if (Cookie != null)
    {
        @Cookie["Veri1"] @Cookie["Veri2"] @Cookie["Veri3"]
    }

    @Html.ActionLink("Cookie Kaydet", "CookieKaydet", "Home");
    <br />
    @Html.ActionLink("Cookie Sil", "CookieSil", "Home");
</body>
</html>

Evet… Bu işlemlerden sonra projemizi derleyip çalıştırdığımızda ilgili Cookie’nin başarıyla kaydedildiğini, erişilebildiğini ve silindiğini görmekteyiz.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

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

*