..
Dezvoltarea şi implementarea de aplicaţii web necesită o monitorizare a stării de acelaşi în orice moment. Unul din statele cele mai importante este asociat cu sesiunea (de stat sesiune) şi ASP.NET oferă un mare sprijin de gestionare a acestuia.
În acest moment ghid ar trebui să fie clar că în programarea de aplicatii web dezvoltate servi mai multor utilizatori, distribuite pe o arie mare, pe baza unui protocol deconectat (HTTP).
În cazul în care statul sesiune este activată pentru fiecare cerere, ASP.NET creează un obiect noi sesiuni, care devine o parte a contextului şi este accesibil prin intermediul paginii. În acest obiect este asignat un identificator şi devine un container la îndemână de informaţii a căror durată este mai mare decât pagina care se referă.
Obiectul Session este un dictionar de perechi nume / valoare, si prin el se poate lega orice obiect într-o cheie, astfel încât să puteţi accesa atunci când este necesar, utilizând tasta proprie.
De exemplu, dacă vrem să stocaţi unele informaţii despre un utilizator într-un obiect de sesiune ar trebui să scrie ceva de genul
StoreInfoInSession nule ()
{
String = TextBox1.Text strInputUtente;
Sesiunea ["strInputUtente"] = strInputUtente;
}
şi o cerere ulterioară, dacă vrem să preluaţi această valoare ar trebui să ne scrie
GetInfoFromSession nule ()
{
StrInputUtente String = Session ["strInputUtente"];
TextBox1.Text = strInputUtente;
}
Gestionarea de stat de şedinţă în ASP.NET este extrem de convenabil, mai ales că această tehnologie în acest tip de obiect pot fi plasate în locuri diferite: în procesul actual, a fost separat pe un server, o bază de date SQL Server.
Pentru a înţelege mai bine modul în care sesiune a fost un exemplu în cazul în care vom vedea, vom crea un site cu o pagină care stochează o valoare, ca parte a sesiunii de stat. Acest lucru face clar diferenţa între starea de o pagină în timpul unei cereri şi informaţiile asociate cu o sesiune care, după cum sa menţionat, persistă chiar şi după cerere.
Vom crea o aplicatie web nouă şi default.aspx formular web inseraţi o casetă text pentru a introduce o valoare care urmează să fie stocate în stare sesiune. Am adăuga, de asemenea, doua butoane, unul pentru a stoca date şi pentru a afişa un statut

Introduce, de asemenea, caseta de text pe o etichetă pentru a afişa datele să te sun înapoi mai târziu. Introduceţi o variabilă de tip şir în pagina noastră şi în Page_Load stabilit valoarea acestui şir în caseta de text nostru
sessionString string;
protejate nule Page_Load (obiect expeditor, EventArgs e)
{
this.Label1.Text = this.sessionString;
}
Dublu-clic pe Stores eveniment faceţi clic pe butonul genera în interiorul corespunzătoare şi introduceţi codul care preia şirul cuprinse în caseta de text şi îl stochează în variabila sessionString, stabilind partea cu eticheta cu acelaşi text
MemorizzaBtn_Click protejate nule (expeditor obiect, EventArgs e)
{
this.sessionString = this.TextBox1.Text;
this.Label1.Text = this.sessionString;
}
Pornim aplicaţia şi să scrie ceva în caseta de text şi faceţi clic pe Salvare.
Ar trebui să vedem ceva de genul

Dacă facem clic pe butonul Vizualizare eticheta trec la o valoare de şir gol ca variabila este instantiat sessionString din nou (pentru că pagina este recreat). Acest lucru se datorează faptului că l-am stabilit în Page_Load proprietatea text a etichetei este setată la valoarea sessinString variabila. Aşa cum am menţionat de mai multe ori, de fapt, paginile sunt foarte scurtă durată obiecte, durata de viaţă a unei cereri şi apoi sunt distruse de toate datele în ele. Deci, dacă scopul este de a stoca unele date, care merge dincolo de durata a unei pagini de îndată ce abordare nu este bun.
Utilizarea de stat sesiune este cale de a rezolva această problemă. Pentru a explica mai bine conceptul vom adăuga o etichetă două pentru a forma-ul nostru şi puneţi-l ca deja prezente

Această etichetă a doua va fi util pentru a afişa date preluate prin obiectul Session. MemorizzaBtn_Click modifica eveniment, astfel încât textul luate de la caseta de text este, de asemenea, stocate în sesiune
MemorizzaBtn_Click protejate nule (expeditor obiect, EventArgs e)
{
/ / Se păstra în valoarea variabilei locale
this.sessionString = this.TextBox1.Text;
/ / Se păstra valoarea din sesiune
this.Session ["sessionString"] = this.TextBox1.Text;
/ / Afişare valoarea variabilei
this.Label1.Text = this.sessionString;
/ / Afişare valoarea sesiunii
this.Label2.Text = (string) this.Session ["sessionString"];
}
Modifica, de asemenea eveniment, astfel încât Page_Load-al doilea set şir eticheta preluate din Session
protejate nule Page_Load (obiect expeditor, EventArgs e)
{
this.Label1.Text = this.sessionString;
this.Label2.Text = (string) this.Session ["sessionString"];
}
Vom începe acum cererea şi a scrie ceva nou în caseta de text, apoi faceţi clic pe butonul Salvare. Ar trebui să vedem ceva de genul

Dacă faceţi clic pe Afişare acum se va vedea că primul parametru va fi setat la şir gol, în timp ce acesta din urmă va menţine valoarea

În timp ce valoarea variabilei locale este pierdut, deoarece pagina este recreat, valoarea stocată în obiectul Session persistă şi pot fi consultate.
În ceea ce priveşte configurarea parametrilor diferite de gestionare a sesiunii vă invit să consultaţi documentaţia oficială Microsoft.
| |
ASP (avansat)
Ciclu complet pentru crearea de site-uri Web dinamice. De la 39 €. |
| |
ASP.NET (Curs)
Ciclu complet pentru construirea de aplicatii Web de la 49 €. |
| |
SQL si baze de date (Curs)
Crearea şi gestionarea bazelor de date relaţionale. De la 39 €. |