18.1 Session state
18.2 Cookies
Oefeningen hoofdstuk 18
18.1 Session state
State is de data die een bezoeker genereert op een website. Bijgevolg heeft state betrekking op het bewaren van instellingen, zoals bijvoorbeeld een ingevulde naam, een winkelwagen met bestelde artikelen, een regel die aangeeft in welke taal een website bezocht wordt… De webserver moet immers kunnen nagaan of een bepaalde reeks verzoeken afkomstig is van eenzelfde client.
Session State maakt voor iedere unieke gebruiker een sessie aan op de server. Elke sessie heeft een uniek ID. Een sessie start op wanneer een site geopend wordt in een browser. Wordt diezelfde site geopend in een tweede browser, dan start een tweede sessie…
Voor elke waarde die ter beschikking gesteld wordt in de sessie, is een sessionvariabele vereist.
Session[“variabelenaam”] = waarde
Bijvoorbeeld:
Session[“Naam”] = txtNaam.Text;
Session[“Taal”] = rblTaal.SelectedValue;
Het uitlezen gebeurt dan als volgt:
if (Session[“Naam”] != null)
{
String strNaam = Session[“Naam”].ToString();
Response.Write(“Naam is: ” + strNaam);
}
Enkele opmerkingen:
- Sessiongegevens zijn enkel beschikbaar binnen de betrokken website.
- Het nadeel van session is dat informatie opslaan in Session state belastend is voor het geheugengebruik op de internetserver.
- Standaard verloopt de Session state na 20 minuten en bijgevolg verdwijnt dan de opgeslagen informatie. Die tijd kan echter gewijzigd worden in het configuratiebestand web.config van de site.
18.2 Cookies
Een cookie is een klein bestandje dat opgeslagen wordt op de clientcomputer. Er bestaan 2 soorten cookies:
- Sessiecookie of temporary cookie: Dit type cookie is opgeslagen in het geheugen en blijft leven zolang de browser van de client geopend is. Wanneer de browser sluit, dan wordt de cookie vernietigd.
- Permanente cookie: De cookie wordt opgeslagen op de harde schijf van de client. Zelfs na het opnieuw opstarten van de computer is de cookie nog steeds aanwezig. Bij een volgend bezoek aan de website wordt de cookie automatisch opnieuw gebruikt. Een permanente cookie wordt op dezelfde wijze aangemaakt als een temporary cookie. Het enige verschil is dat er een vervaldatum opgegeven moet worden. Dit gebeurt aan de hand van de code: Cookie.Expires = DateTime.Now.AddDays(20);
if (!Request.Browser.Cookies)
Response.Write(“Uw browser ondersteunt geen cookies waardoor u deze site niet optimaal kan gebruiken!”);
else if (Request.QueryString[“AcceptCookies”] != null)
Response.Write(“Accepteer cookies om deze site optimaal te kunnen gebruiken!”);
else
Response.Write(“De browser ondersteunt cookies. U kunt deze site optimaal gebruiken!”);
Via het object HttpCookie kan een tijdelijke cookie aangemaakt worden. De HttpResponse-object bevat meerdere cookies in de collectie cookies en zorgt ervoor dat de cookies teruggestuurd kunnen worden naar de browser.
HttpCookie cookBezoeker = new HttpCookie(“Bezoeker”);
cookBezoeker.Value = txtNaam.Text;
Response.Cookies.Add(cookBezoeker);
Met behulp van het object Request kan de cookie uitgelezen worden. Controleer eerst of de cookie bestaat:
if (Request.Cookies[“Bezoeker”] != null)
{
String strNaam = Request.Cookies[“Bezoeker”].Value;
Response.Write(strNaam);
}
Oefeningen hoofdstuk 18
Oefening 18-1 Herneem oefening 17-1 en maak nu gebruik van “Session state” om de keuze van de klant in de webpagina “Wijnkeuze.aspx” weer te geven op de webpagina “Kassa.aspx” wanneer de klant klikt op de knop GA NAAR DE KASSA.
Oefening 18-2 Op een webpagina “Menu.apx” kunnen studenten een menu reserveren voor de volgende dag. Hierbij hebben ze telkens de keuze uit 3 voorgerechten, 3 hoofdgerechten en 3 nagerechten. Voor ieder menu wordt de prijs berekend die de student moet betalen. Nadat de student zijn keuze gemaakt heeft, wordt in de webpagina “Bestelling.aspx” een overzicht gegeven van het bestelde menu met de te betalen prijs. Maak hierbij gebruik van cookies.
Oefening 18-3 Maak een pagina die toont hoeveel keer de gebruiker de pagina al bezocht heeft. Een cookie houdt het aantal bij ook als de gebruiker de browser afsluit.
Oefening 18-4 Maak een pagina waar de gebruiker een wachtwoord moet ingeven. Na 3 verkeerde pogingen wordt de toegang geweigerd. Gebruik cookies.