HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Session property, avagy a HttpSessionState osztály


Page osztály 6. rész

Példaprogram letöltése

11081 bájt

A Page osztály Session property-jén keresztül elérhető adatok, illetve funkciók a kliens által megnyitott aktuális folyamattal kapcsolatosak. A Session segítségével - többek között - adatokat rendelhetünk egy-egy folyamathoz, melyek csak más folyamatból nem lesznek elérhetők.

Mellékelt példa használatához hozzunk létre egy Page06 nevű virtuális könyvtárat a web kiszolgálón, mely arra a könyvtárra mutat, ahová másoltuk az állományokat.
Az aktuális folyamat kódlapját a CodePage property-n keresztül olvashatjuk ki, illetve állíthatjuk be.
Ha az IsCookieless logikai típusú property igaz, akkor az aktuális folyamat cookie nélküli.
Az IsNewSession igaz értéke esetén az aktuális folyamat most jött létre, hamis érték esetén már nem új a folyamat. Mellékelt program elindítása után megfigyelhető, hogy e property értéke igaz, de ha a böngészőben frissítjük annak tartalmát, akkor a property értéke már hamis lesz.
Ha az IsReadOnly property értéke igaz, akkor a folyamat csak olvasható.
Ha az IsSynchronized property igaz, akkor a tárolt adatok kollekciójához való hozzáférés csak olvasható lesz.
A hely azonosító értéke az LCID property-ből határozható meg. Ez alapján a CultureInfo osztály segítségével megtudhatók a kódhoz tartozó adatok.
        CultureInfo ci = new CultureInfo(Session.LCID);
        Label14.Text = Session.LCID.ToString() + ": " + ci.NativeName;
A SessionID adja az aktuális folyamat egyedi azonosítóját sztringként. Megfigyelhető, hogy ha olyan linkre kattintunk, mely ugyanerre a lapra hivatkozik, de egy külön böngészőt nyit, attól a folyamat még ugyanaz marad. Ennek kipróbálására kattintson a mellékelt példában a WebForm1.aspx linkre és figyelje meg a SessionID értékét mind a két böngészőben. Most indítson el egy újabb böngésző példányt és oda írja be a http://localhost/Page06/WebForm1.aspx címet. A megjelenő web oldalon látható lesz a SessionID alapján, hogy ez már egy másik folyamat.
A TimeOut property határozza meg percben, hogy meddig maradjon fent egy folyamat a felhasználó két kérése között. Ennek alapértéke 20 perc, vagyis, ha ugyanattól a felhasználótól két kérés között több mint 20 perc eltelik, akkor már egy új folyamat fogja kiszolgálni azt a kérést.
Minden folyamatban tárolhatunk egyedi adatokat egy kollekcióban. Kiolvasáshoz az Item property-t használhatjuk, illetve a Count-ot, mely a tárolt adatok számát adja meg. Minden tárolt adatnak egy-egy nevet adhatunk, így az Item-en keresztül vagy e névvel hivatkozva érhetjük el azt, vagy a sorszámával.
        Label18.Text = "<b>Count: </b>" + Session.Count.ToString();
        Label17.Text = "";
        for (int i=0; i<Session.Count; i++)
        {
          Label17.Text += "<b>"+i.ToString()+".</b> "+Session[i].ToString()+"<br>";
        }
A megadott elemek neveit a Keys property tárolja.
        ListBox1.Items.Clear();
        IEnumerator ie = Session.Keys.GetEnumerator();
        while (ie.MoveNext())
        {
          ListBox1.Items.Add((string)ie.Current);
        }
Új adat tárolásához a Session property Add függvényét használhatjuk. Első paraméterként az új elem nevét, másodikként a tárolandó értéket kell megadnunk.
      Session.Add("key" + r.Next(10000).ToString(), DateTime.Now.ToString("G"));
A Remove függvény hívásával eltávolíthatunk egy értéket a kollekcióból annak neve alapján.
        Session.Remove(ListBox1.SelectedItem.Value);
A Clear függvényt használva a kollekció összes elemét törölhetjük egyetlen lépésben.
      Session.Clear();
A RemoveAt függvénynek megadott index alapján távolítja el a kérdéses elemet a kollekcióból.
        Session.RemoveAt(0);
Törölni tudjuk az aktuális folyamatot az Abandon függvény hívásával. Hatására törölve lesz az összes Item-ben tárolt adat is.
      Session.Abandon();

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 368. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |