Asp.Net Dersleri – Asp.net Cookie (Çerez) Kullanımı

Asp.net ile cookie kullanımını açıklamadan önce cookie nedir ondan bahsedelim , Cookie sayfanızı ziyaret eden kullanıcılara ait bilgileri ziyaretçilerin bilgisayarların da kaydetmek için kullanılan teknolojidir, peki neden ihtiyacımız var Cookilere, “Genel kullanım amacı, siteye gelen ziyaretçileri, bir sonraki ziyaretlerinde hatırlamaktır.” Pratikte çerezler, web server tarafından tarayıcıya gönderilen ve client’ta kaydedilen ufak metin dosyalarıdır. Çerezler, kullanıcı kimlik doğrulama ve tanımlama, kullanıcı tercihleri, alışveriş sepeti, vb. bilgileri client tarafında tutmak için kullanılır.
Hemen örnekler ile açıklayalım sayfamızın Page_Load olayına

HttpCookie okunancerez = Request.Cookies["cerezler"];
if (Request.Cookies["cerezler"] == null)
{
Label1.Text = "Cookie oluşturuldu sayfayı yenileyin";
HttpCookie cerez = new HttpCookie("cerezler");
cerez["bilgi"] = "bu bir cookie bilgisi";
cerez.Expires = DateTime.Now.AddSeconds(10);
Response.Cookies.Add(cerez);
}
else
{
Label1.Text = okunancerez["bilgi"].ToString();
}

kodlarını yazıyoruz, sayfamızda ilk olarak cerez olup olmadığını kontrol ediyoruz eğer yok ise “Cookie oluşturuldu sayfayı yenileyin” mesajı veriliyor, eğer varsa “bu bir cookie bilgisi” yazıyor.

Şimdi Cookielerin nasıl kullanıldığını anlamak için basit bir anket uygulaması yapalım ilk olarak aşağıdaki tasarımı sayfamızda oluşturalım.

Tasarım koldarımız

<asp:Label ID="Label1" runat="server" Text="Hangi Takımı Tutuyorsunuz"></asp:Label>
<br />
<asp:RadioButtonList ID="RadioButtonList1" runat="server">
<asp:ListItem>Galatasaray</asp:ListItem>
<asp:ListItem>Fenerbahçe</asp:ListItem>
<asp:ListItem>Beşiktaş</asp:ListItem>
<asp:ListItem>Trabzonspor</asp:ListItem>
</asp:RadioButtonList>
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Oy Ver" />
<br />
<asp:BulletedList ID="BulletedList1" runat="server">
<asp:ListItem>0</asp:ListItem>
<asp:ListItem>0</asp:ListItem>
<asp:ListItem>0</asp:ListItem>
<asp:ListItem>0</asp:ListItem>
</asp:BulletedList>

Kullanıcı herhangi bir takıma oy verdiği zaman aynı bilgisayardan oy verilmesini engellemek için 7 günlük bir cookie oluşturuyoruz ve kullanıcı bu cookie dosyasını silene kadar 7 gün içerisinde tekrar oy veremeyecek kodlarımızı button1 click olayına aşağıdaki kodları yazıyoruz.

if (Request.Cookies["anket"] == null)
{
HttpCookie cerez = new HttpCookie("anket");
cerez["bilgi"] = "oyverdi";
cerez.Expires = DateTime.Now.AddDays(7);
Response.Cookies.Add(cerez);
if (RadioButtonList1.Items[0].Selected)
{
BulletedList1.Items[0].Text = (Int16.Parse(BulletedList1.Items[0].Text) + 1).ToString();
}
if (RadioButtonList1.Items[1].Selected)
{
BulletedList1.Items[1].Text = (Int16.Parse(BulletedList1.Items[1].Text) + 1).ToString();
}
if (RadioButtonList1.Items[2].Selected)
{
BulletedList1.Items[2].Text = (Int16.Parse(BulletedList1.Items[2].Text) + 1).ToString();
}
if (RadioButtonList1.Items[3].Selected)
{
BulletedList1.Items[3].Text = (Int16.Parse(BulletedList1.Items[3].Text) + 1).ToString();
}
}
else
{
Response.Write("Daha önce Oy Kullandınız");
}

Pin It on Pinterest