Asp.net Cookie Kullanımı

Cookie nedir diye anlatmaya pek gerek yok ancak  Internette heryerde geziyor ne olduğu.
internette bu konu hakkında araştırma yaparken hep aynı örnekler yapılmış. Ben biraz daha farklı ve bir cookie içinde birden fazla değerin tutulmasıyla ilgili, kendi işlerimde de yararlandığım bir örnek yapacağım. Önce cookie oluşturan metodumuzu yazalım.

      HttpContext _context = HttpContext.Current;

        public void createCookie(string cookieName, double ExpDay, Dictionary _values)
        {
            try
            {
                HttpCookie _cookie = new HttpCookie(cookieName);
                foreach (string key in _values.Keys)
                {
                    _cookie.Values.Add(key, _values[key]);
                }
                _cookie.Expires = DateTime.Now.AddDays(ExpDay);
                _context.Response.Cookies.Add(_cookie);
                _context.Response.Write(“Cookie başarıyla kaydedildi.”);
            }
            catch (Exception ex)
            {
                _context.Response.Write(ex.Message);
            }  
        }

Cookie oluştururken birden fazla değer eklenebilmesi için böyle bir yola başvurdum. Daha farklı yollarda izlenebilir.
Örneğin kullanıcının ihtiyaç duyulan bilgilerini cookie’de tutabiliriz. Şimdide cookie okuma metodunu yazalım.

public string readCookie(string cookieName, string valueKey)
        {
            try
            {
                return _context.Request.Cookies[cookieName][valueKey];
            }
            catch (Exception ex)
            {
                _context.Response.Write(ex.Message);
                return null;
            }
        }

İşinize yarayabileceğini düşündüğüm için cookie silme metodunu da ekliyorum. Eski bir cookie bilgisini silmek isterseniz
Aşağıdaki metodu kullanabilirsiniz. Gerçi metod silme işlemi falan yapmıyor. Sadece geçerlilik süresini bitiriyor ve bu sayede
cookie otomatik olarak silinmiş oluyor.

public void deleteCookie(string cookieName)
        {
            if (Request.Cookies[cookieName] != null)
            {
                HttpCookie myCookie = new HttpCookie(cookieName);
                myCookie.Expires = DateTime.Now.AddDays(-1d);
                Response.Cookies.Add(myCookie);
            }
        }

Advertisements