Tutorial de gestión de sesiones de ASP.NET [Ejemplo]

Gestión de sesiones ASP.NET

El protocolo HTTP en el que funcionan todas las aplicaciones web es un protocolo sin estado. Sin estado, simplemente significa que la información no se conserva de una solicitud a otra.

Por ejemplo, si tiene una página de inicio de sesión con dos cuadros de texto, uno para el nombre y el otro para la contraseña, cuando hace clic en el botón Iniciar sesión en esa página, la aplicación debe asegurarse de que el nombre de usuario y la contraseña se transfieran a la página siguiente.

En ASP.Net, esto se hace de diversas formas. La primera forma es mediante un concepto llamado ViewState. Aquí es donde ASP.Net almacena automáticamente el contenido de todos los controles. También garantiza que esto se pase a la página siguiente. Esto se hace mediante una propiedad llamada ViewState.

No es ideal que un desarrollador cambie nada en el estado de vista. Esto se debe a que ASP.Net debería manejarlo únicamente.

Objeto de sesión ASP.NET

La otra forma es utilizar un objeto llamado "Objeto de sesión". El objeto Session está disponible durante todo el ciclo de vida de la aplicación. Puede almacenar cualquier número de pares clave-valor en el objeto Sesión. Entonces, en cualquier página, puede almacenar un valor en el objeto Sesión mediante la siguiente línea de código.

Session["Key"]=value

Esto almacena el valor en un objeto de sesión y la parte "clave" se utiliza para darle un nombre al valor. Esto permite recuperar el valor en un momento posterior. Para recuperar un valor, simplemente puede emitir la siguiente declaración.

Session["Key"]

Ejemplo de objeto de sesión ASP.NET

En nuestro ejemplo, vamos a utilizar el objeto Session para almacenar el nombre ingresado en el campo de texto de nombre en la página. Luego, vamos a recuperar ese valor y mostrarlo en la página según corresponda. Agreguemos el código siguiente al archivo Demo.aspx.cs.

Utilice el objeto de sesión

protected void btnSubmit_Click(object sender,EventArgs e)
{
	Session["Name"] = txtName.Text;

	Response.Write(Session["Name"]);

	lblName.Visible = false; 
	txtName.Visible = false; 
	1stLocation.Visible = false;
	chkC.Visible = false; 
	chkASP.Visible = false; 
	rdMale.Visible = false;
	rdFemale.Visible = false;
	btnSubmit.Visible = false;
}

Explicación del código: -

  1. La primera línea de código toma el valor del control de cuadro de texto Nombre y lo almacena en el objeto Session. Al especificar el código de Session[“Name”] , le damos a la propiedad un nombre llamado “Name”. Al especificar un nombre para la propiedad, resulta más fácil recuperarla en un momento posterior.
  2. La siguiente línea de código recupera el valor almacenado del objeto Sesión. Luego escribe este valor a través del método 'Response.Write' en el cliente.
  3. Por último, hacemos que todos los controles del formulario sean invisibles. Si no lo hacemos, se mostrarán todos los controles más nuestros valores de respuesta juntos.

Una vez que realice los cambios anteriores, verá el siguiente resultado

Salida:

Utilice el objeto de sesión

Desde la salida, puede ver que el valor de sesión del nombre se recuperó y se mostró en el navegador.

Resumen

  • La gestión de sesiones es una forma de ASP.net para garantizar que la información pase de una página a otra.
  • La propiedad de estado de vista de una página se utiliza para pasar automáticamente la información de los controles de una página a otra.
  • El objeto 'Sesión' se utiliza para almacenar y recuperar valores específicos dentro de una página web.