04.11.2010 | Radek | | Programujeme | Žádné komentáře | 

Použití cookies v ASP.NET

V tomto článku si ukážeme, jak lze jednoduše pracovat v ASP.NET s cookies, jak cookies uložit na klientovi a poté zpětně přečíst. Součástí článku je ukázka, ve které do cookies uložíme obsah TextBoxu a po novém přístupu na ukázkovou stránku tento TextBox naplníme daty z uložené cookie.

Pracujeme s cookies

Při práci s cookies budeme požívat třídu HttpContext z jmeného prostoru System.Web. Dále budeme používat objekty z této třídy a to Response pro zápis a Request pro čtení.

Nejprve si vytvoříme webový formulář, do kterého umístíme jeden TextBox, který použijeme pro demonstraci použití cookies. Nesmíme také zapomenout na Button, který uloží obsah TextBoxu do cookie.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Používáme cookies</title>
</head>
<body>
  <form id="form1" runat="server">
   <div>
     <asp:TextBox ID="tbJmeno" runat="server" />
     <asp:Button ID="Button1" runat="server" Text="Ulož cookie" />
   </div>
  </form>
</body>
</html>

Dále do metody PageLoad, která je prováděna vždy při načítání stránky, přidáme kód, kterým budeme zjišťovat, zda je cookie již u klienta uložena a pokud ano, načteme ji do TextBoxu. Nejprve si vytvoříme novou instanci cookies, kterou nazveme např. ulozenaCookie a pokusíme se jí přiřadit hodnotu uložené cookie. Pokud není hodnota z cookie přečtena (ať už z důvodu, že klient nepodporuje cookies, nebo přistoupil na naši aplikaci poprvé), bude naše cookie samozřejmě null a TextBox zůstane prázdný. Pokud získaná cookie existuje, zobrazíme její hodnotu v TextBoxu.

protected void Page_Load(object sender, EventArgs e)
{
 if (!IsPostBack)
  {
   HttpCookie ulozenaCookie = new HttpCookie("naseCookie");
   ulozenaCookie = Request.Cookies["naseCookie"];
   if (ulozenaCookie!= null)
     {
       tbJmeno.Text = ulozenaCookie.Value;
     }
   }
  
}

Pokud cookie ještě neexistuje nebo její hodnotu chceme změnit, vyplníme TextBoxt hodnotou, kterou do cookie chceme uložit a klikneme na tlačítko Ulož cookie, což vyvolá metodu Button1_Click, pomocí které uložíme hodnotu TextBoxu do cookie.

protected void Button1_Click(object sender, EventArgs e)
{
   HttpCookie ulozenaCookie = new HttpCookie("naseCookie");
   ulozenaCookie.Value = tbJmeno.Text;
   ulozenaCookie.Expires = DateTime.Now.AddYears(1);
   Response.Cookies.Add(ulozenaCookie);
}

V této metodě nejprve vytvoříme instanci cookie, kterou nazveme třeba opět ulozenaCookie. Hodnotu této cookie nastavíme na text, který získáme z TextBoxu. Poté nastavíme platnost této cookie na jeden rok. Pokud bychom toto nenastavili, platnost cookie vyprší se zavřením prohlížeče. No a nakonec tuto cookie přidáme co kolekce cookies pomocí metody Add(), kterou aplikace odešle klientovi v Response.Cookies. Tím by měla být hodnota cookie uložena u klienta a pokud si znovu zobrazíme testovací stránku, měl by být obsah TextBoxu roven hodnotě cookie, kterou jsme uložili.

Tímto jsme si popsali základní práci s cookies. Jak je vidět, používání cookies není nijak složité a jistě najdete vhodné použití cookies ve své webové aplikaci.





Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *


Novinky a oznámení

15.10.2016 - Do menu byla přidána nová sekce Stream, kde naleznete jak veškěré informace ohledně Fantomasmag TV, což jsou online streamy na Twitch.tv, tak i přímo online stream a chat.

Partnerské weby

Statistika

Naši fanoušci na Facebooku

Další...