4. listopadu 2010
|
Radek Kropík
|
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.