..


Enllaços patrocinats

La gestió d'estat de sessió

El desenvolupament i desplegament d'aplicacions web requereix un seguiment de l'estat de la mateixa en tot moment. Un dels estats més importants es relaciona amb el període de sessions (de l'estat de sessió) i ASP.NET proporciona un gran suport per a la seva gestió.

En aquest punt, la guia ha de quedar clar que en la programació d'aplicacions web desenvolupades servir múltiples usuaris, distribuïts en una àrea gran, sobre la base d'un protocol sense connexió (HTTP).

Quan l'estat de sessió està habilitada per a cada sol.licitud, ASP.NET crea un objecte de nova sessió, que es converteix en part del context i és accessible a través de la pàgina. En aquest objecte se li assigna un identificador i es converteix en un contenidor de la mà de la informació, la durada és més gran que la pàgina es refereix.

L'objecte Session és un diccionari de parells nom / valor, ia través d'ella es pot enllaçar qualsevol objecte a una clau perquè pugui accedir-hi quan sigui necessari, utilitzant la seva clau.

Per exemple, si volem emmagatzemar informació sobre un usuari en un objecte de sessió d'escriure alguna cosa com






 StoreInfoInSession buit ()







 {

 

  



 String = TextBox1.Text strInputUtente;

 

  



 Session ["strInputUtente"] = strInputUtente;







 }



i una sol licitud posterior, si volem recuperar aquest valor s'ha d'escriure





 GetInfoFromSession buit ()







 {

 

  



 StrInputUtente String = Session ["strInputUtente"];

 

  



 TextBox1.Text = strInputUtente;







 }



La gestió d'estat de sessió en ASP.NET resulta molt útil, sobretot perquè aquesta tecnologia en aquest tipus d'objectes poden ser col locats en diferents llocs: en el procés actual, es va separar en un servidor, una base de dades de SQL Server.

Per entendre millor com la sessió va ser un exemple on veiem que crearà un lloc web amb una pàgina que emmagatzema un valor en el marc de l'estat de sessió. Això deixa en clar la diferència entre l'estat d'una pàgina en la sol.licitud i la informació associada a una sessió que, com s'ha esmentat, persisteixen fins i tot després de la sol.licitud.

Creem una nova aplicació web i la web default.aspx formulari d'inserció d'un quadre de text per introduir el valor que s'emmagatzema en estat de sessió. També anem a afegir dos botons, un per a emmagatzemar dades i per mostrar un estat de

També inserir quadre de text al costat d'una etiqueta per mostrar les dades a que truqui més tard. Inserir una variable de tipus cadena en la nostra pàgina i en el Page_Load establir el valor d'aquesta cadena en el nostre quadre de text






 cadena sessionString;









 protected void Page_Load (object sender, EventArgs e)







 {



  



 this.Label1.Text = this.sessionString;







 }



Feu doble clic al botó de Botigues esdeveniment Click generar l'interior corresponent i inserir el codi que recupera la cadena continguda en el quadre de text i l'emmagatzema en sessionString variable, ajust de l'etiqueta amb el mateix text





 MemorizzaBtn_Click protected void (object sender, EventArgs e)







 {



  



 this.sessionString = this.TextBox1.Text;



  



 this.Label1.Text = this.sessionString;







 }



Partim de l'aplicació i escriure alguna cosa en el quadre de text i feu clic a Desa. Hauríem de veure alguna cosa com

Si fem clic al botó Veure l'etiqueta té un valor de cadena buida com la variable es crea una instància sessionString de nou (perquè la pàgina es torna a crear). Això es deu al que estableix el Page_Load de la propietat Text de l'etiqueta s'estableix en el valor de la sessinString variable. Com ja hem esmentat diverses vegades, de fet, les pàgines són de molt curta vida d'objectes, la durada d'una sol licitud i després es destrueixen totes les dades en ells. Així que si l'objectiu és emmagatzemar fitxers que va més enllà de la durada d'una pàgina tan aviat com l'enfocament no és bo.

L'ús d'estat de sessió és la manera de resoldre aquest problema. Per explicar millor el concepte que afegir una segona etiqueta del nostre formulari web i configurar-lo com que ja estigui

Aquesta segona etiqueta serà útil per mostrar les dades obtingudes a través de l'objecte de la sessió. MemorizzaBtn_Click modificar l'esdeveniment perquè el text pres de la caixa de text també s'emmagatzema en la sessió






 MemorizzaBtn_Click protected void (object sender, EventArgs e)







 {



  



 / / Emmagatzemar el valor de la variable local



  



 this.sessionString = this.TextBox1.Text;





  



 / / Emmagatzemar el valor en la sessió



  



 this.Session ["sessionString"] = this.TextBox1.Text;





  



 / / Mostra el valor de la variable



  



 this.Label1.Text = this.sessionString;





  



 / / Mostra el valor de la sessió



  



 this.Label2.Text = (cadena) this.Session ["sessionString"];







 }



També modificar l'esdeveniment Page_Load perquè el conjunt de la segona cadena de l'etiqueta recuperat de la sessió





 protected void Page_Load (object sender, EventArgs e)







 {



  



 this.Label1.Text = this.sessionString;



  



 this.Label2.Text = (cadena) this.Session ["sessionString"];







 }



Comencem ara l'aplicació i escriure alguna cosa nova en el quadre de text i fent clic al botó Desa. Hauríem de veure alguna cosa com

Si ara fa clic a Mostra veurà que el primer paràmetre s'estableix en una cadena buida, mentre que el segon es mantingui el valor

Mentre que el valor de la variable local es perd, perquè la pàgina es torna a crear, el valor emmagatzemat en l'objecte Session persisteix i pot ser consultat.

Pel que fa a la configuració de diferents paràmetres per a la gestió de la sessió que us convidem a consultar la documentació oficial de Microsoft.

Ajuda amb Visual Studio ASP.Net
E-Learning
ASP (Advanced) ASP (Advanced)
Cicle complet per a la creació de llocs web dinàmics. A partir de 39 €.
ASP.NET (Curs) ASP.NET (Curs)
Curs complet per construir aplicacions web a partir de 49 €.
SQL i bases de dades (Curs) SQL i bases de dades (Curs)
Crear i gestionar bases de dades relacionals. A partir de 39 €.
Enllaços patrocinats