Programavimas

Kaip dirbti su „Session“ sistemoje ASP.Net

HTTP yra protokolas be pilietybės. Tai reiškia, kad kiekvieną kartą siunčiant naują užklausą iš kliento į serverį, prarandama ankstesnės užklausos būsenos informacija. Yra keli būdai, kaip išsaugoti ir valdyti būseną ASP.Net. Sesijos objektas yra vienas iš jų, kiti yra talpyklos ir programos objektai.

Talpinimas pagerina programos našumą, sumažinant sistemos išteklių sunaudojimą. Galite saugoti dažnai naudojamus duomenis ar tinklalapius, kad pagerintumėte programos našumą, pralaidumą ir mastelį, sumažindami serverio išteklių sunaudojimą.

Seansą galite apibrėžti kaip serverio ir kliento ryšio sesiją - seanso objekte yra duomenys, atitinkantys vartotojo seansą. „Session“ yra serverio būsenos valdymo technika, naudojama saugoti vartotojo specifinę informaciją atmintyje, kad vėliau būtų galima ją atgauti.

Sesijos duomenų saugojimo režimai

Sesijos objektas yra sukurtas ir valdomas serverio pusėje. Sesijos saugojimo režimas nustato, kur turėtų būti saugomi jūsų seanso duomenys. Sesijos būsena gali būti saugoma vienu iš šių režimų:

  1. Procesas: saugomas tame pačiame ASP.Net procese
  2. Valstybės serveris: saugomas kitoje sistemoje
  3. SQL serveris: saugomas SQLServer duomenų bazėje
  4. Pasirinktinis: tai leidžia saugoti seanso duomenis naudojant pasirinktinį saugyklos teikėją

„In-Proc“ seanso duomenų saugojimo režimas yra numatytasis režimas ir jis yra greičiausias iš visų galimų saugojimo režimų. Šiuo režimu seanso duomenys yra saugomi serverio atmintyje - ASP.Net darbuotojo procese. Turėtumėte naudoti šį režimą, jei duomenų, kuriuos reikia saugoti seanso metu, kiekis yra mažesnis ir jei jums nereikėtų tų duomenų išsaugoti. Reikėtų pažymėti, kad šiame režime saugomi sesijos duomenys yra nepastovūs, t.y., kai tik sesija nutraukiama, sesijos duomenys prarandami. Taigi seanso duomenys yra prieinami tol, kol seansas yra gyvas.

„State Server“ režimu seanso duomenys yra saugomi atskirame procese - tai vadinama ASP.Net valstybės tarnyba. Kitaip tariant, seanso duomenys šiame režime saugomi už ASP.Net darbuotojo proceso ar IIS programų grupės. Skirtingai nei „Proc-In“ režime, būsenos serverio režimo seanso duomenys yra išsaugomi, t. Y. Jie neprarandami iš naujo paleidus žiniatinklio programą.

Šis kodo fragmentas parodo, kaip galite konfigūruoti seanso būseną savo programoje, kad ji būtų saugoma šiame režime.

 

   

stateConnectionString = "tcpip = Serveris: 1234"

„cookieless“ = „klaidinga“

skirtasis laikas = "20" />

 

SQLServer seanso duomenų saugojimo režimas naudojamas norint išsaugoti jūsų programos seanso duomenis SQLServer duomenų bazėje. Panašiai kaip būsenos serverio seanso duomenų saugojimo režimas, „SQLServer“ režimas taip pat leidžia išlaikyti programos seanso duomenis iš naujo paleidus programą. Atminkite, kad prieš naudodami šį režimą turėtumėte įsitikinti, kad sukurta ASP.Net sesijos būsenos duomenų bazė. Šią duomenų bazę galite sukurti naudodami „Aspnet_regsql.exe“ komandų eilutės įrankį.

Šis kodo fragmentas parodo, kaip galite sukonfigūruoti savo programą, kad seanso duomenys būtų saugomi „SQLServer“ duomenų bazėje.

 

   

sqlConnectionString = "duomenų šaltinis = serveris; vartotojo ID = joydip; slaptažodis = sa1 @ 3"

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

 

Parama seanso duomenų glaudinimui

„Microsoft“ ASP.Net 4 pristatė naują funkciją: seanso būsenos glaudinimą. Naudodami „ASP.Net 4“ ir toliau, galite naudoti šią įmontuotą funkciją, kad suspaustumėte seanso duomenis saugodami ne proceso seansus. Norėdami pasinaudoti šia funkcija, tereikia programos konfigūracijos faile nustatyti atributą „compressionEnabled“ į „true“. Šis kodo fragmentas parodo, kaip tai galima sukonfigūruoti.

<>

mode = "SQLServer"

stateConnectionString = "kažkokia ryšio eilutė ..."

compressionEnabled = "true" />

Sesijos būsena leidžia jums saugoti konkrečius vartotojo duomenis atmintyje ir unikaliai nustatyti tam tikrą užklausą. Sesijos duomenys saugomi kaip raktų / reikšmių poros „SessionStateItemCollection“ ir prie jų galima prisijungti naudojant ypatybę „HttpContext.Session“.

Šie kodų pavyzdžiai rodo, kaip galite saugoti ir gauti seanso duomenis.

HttpSessionState.Session ["Vartotojo vardas"] = "Jonas"; // saugo sesijos duomenis

eilutė str = HttpSessionState.Session ["Vartotojo vardas"]. ToString ();

// Gauna seanso duomenis

HttpSessionState.Remove („Raktas, kurį norite pašalinti“);

// Pašalina objektą iš seanso būsenos

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