Programiranje

Kako delati s sejami v ASP.Net

HTTP je protokol brez državljanstva. To pomeni, da se vsakič, ko od stranke na strežnik pošlje nova zahteva, izgubijo informacije o stanju prejšnje zahteve. Obstaja več načinov za shranjevanje in upravljanje stanja v ASP.Net. Predmet seje je eden izmed njih, drugi pa so predmeti Caching in Application.

Predpomnjenje izboljša zmogljivost aplikacije tako, da zmanjša porabo virov v vašem sistemu. Pogosto uporabljene podatke ali spletne strani lahko shranite za izboljšanje zmogljivosti in pretočnosti ter razširljivosti aplikacije z zmanjšanjem porabe virov strežnika.

Sejo lahko definirate kot sejo povezljivosti med strežnikom in odjemalcem - objekt seje vsebuje podatke, ki ustrezajo uporabniški seji. Seja je tehnika upravljanja stanja na strani strežnika, ki se uporablja za shranjevanje uporabnikovih informacij v pomnilnik za kasnejše iskanje.

Načini shranjevanja podatkov o sejah

Objekt seje se ustvari in upravlja na strani strežnika. Način shranjevanja seje določa, kje naj bodo shranjeni podatki vaše seje. Stanje seje lahko shranite v enega od naslednjih načinov:

  1. V postopku: shranjeno v istem procesu ASP.Net
  2. Državni strežnik: shranjen v drugem sistemu
  3. SQL Server: shranjen v zbirki podatkov SQLServer
  4. Po meri: to vam omogoča shranjevanje podatkov sej z uporabo ponudnika pomnilnika po meri

Način shranjevanja podatkov seje In-Proc je privzeti način in je tudi najhitrejši od vseh razpoložljivih načinov shranjevanja. V tem načinu so podatki seje shranjeni v pomnilniku strežnika - znotraj delovnega procesa ASP.Net. Ta način uporabite, če je količina podatkov, ki jih je treba shraniti v seji, manjša in če podatkov ne bi bilo treba ohraniti. Upoštevati je treba, da so podatki seje, shranjeni v tem načinu, spremenljivi, tj. Takoj, ko se seja prekine, se podatki seje izgubijo. Podatki v seji so na voljo, dokler je seja živa.

V načinu državnega strežnika so podatki seje shranjeni v ločenem procesu - to se imenuje državna storitev ASP.Net. Z drugimi besedami, podatki seje v tem načinu so shranjeni zunaj delovnega procesa ASP.Net ali področja aplikacij v IIS. Za razliko od načina In-Proc se podatki sej v načinu državnega strežnika ohranijo, torej se po ponovnem zagonu spletne aplikacije ne izgubijo.

Naslednji delček kode prikazuje, kako lahko konfigurirate stanje seje v svoji aplikaciji, ki bo shranjena v tem načinu.

 

   

stateConnectionString = "tcpip = Strežnik: 1234"

cookieless = "false"

timeout = "20" />

 

Način shranjevanja podatkov seje SQLServer se uporablja za ohranitev podatkov seje vaše aplikacije v zbirki podatkov SQLServer. Podobno kot način shranjevanja podatkov seje državnega strežnika tudi način SQLServer omogoča, da se podatki seje vaše aplikacije obdržijo med ponovnim zagonom aplikacije. Upoštevajte, da morate pred uporabo tega načina zagotoviti, da je baza podatkov o stanju seje ASP.Net ustvarjena. To bazo podatkov lahko ustvarite s pripomočkom ukazne vrstice Aspnet_regsql.exe.

Naslednji delček kode prikazuje, kako lahko konfigurirate svojo aplikacijo za shranjevanje podatkov sej v zbirki podatkov SQLServer.

 

   

sqlConnectionString = "vir podatkov = strežnik; uporabniški id = joydip; geslo = sa1 @ 3"

cookieless = "false" timeout = "20" />

 

Podpora za stiskanje podatkov seje

Microsoftov ASP.Net 4 je predstavil novo funkcijo: stiskanje stanja seje. Z ASP.Net 4 in novejšimi lahko vgrajeno funkcijo izkoristite za stiskanje podatkov sej za shranjevanje sej, ki niso v postopku. Če želite izkoristiti to funkcijo, morate v konfiguracijski datoteki aplikacije nastaviti atribut compressionEnabled na »true«. Naslednji delček kode prikazuje, kako je to mogoče konfigurirati.

<>

mode = "SQLServer"

stateConnectionString = "nek niz povezave ..."

compressionEnabled = "true" />

Stanje seje vam omogoča, da shranite uporabniške podatke v pomnilnik in enolično določite določeno zahtevo. Podatki o seji so shranjeni kot pari ključ / vrednost v zbirki SessionStateItemCollection in do njih je mogoče dostopati s pomočjo lastnosti HttpContext.Session.

Naslednji primeri kode prikazujejo, kako lahko shranjujete in pridobivate podatke o sejah.

HttpSessionState.Session ["UserName"] = "John"; // shranjuje podatke seje

niz str = HttpSessionState.Session ["UserName"]. ToString ();

// Pridobi podatke seje

HttpSessionState.Remove ("Ključ za odstranitev");

// Odstrani predmet iz stanja seje

$config[zx-auto] not found$config[zx-overlay] not found