Sesiones
Las sesiones son una forma de almacenar información que es pertinente a un usuario o una sesión de navegador específica en una aplicación web. En ASP.NET Core, la sesión se utiliza para almacenar datos entre peticiones HTTP.
🧠 ¿Qué es una Sesión?
Almacenamiento Temporal: Las sesiones proporcionan una manera de persistir los datos a través de múltiples peticiones HTTP.
Por Usuario: Los datos de la sesión son únicos para cada usuario y son accesibles en todas las páginas durante la visita del usuario.
🛠️ Configuración de Sesiones
1️⃣Servicios de Sesión: Debes registrar los servicios de sesión en Program.cs
de tu aplicación.
2️⃣Middleware de Sesión: Debes agregar el middleware de sesión en la pipeline de procesamiento de solicitudes.
💾 Cómo Usar la Sesión
Establecer Datos de Sesión: Puedes establecer valores de sesión usando claves.
Obtener Datos de Sesión
📦 Tipos de Datos en la Sesión
Los datos de la sesión pueden ser tipos primitivos como
string
oint
.Para almacenar tipos complejos, necesitas serializarlos a
string
(como JSON) y luego deserializarlos cuando los recuperes.
📁 Almacenamiento de Sesiones
Por defecto, las sesiones se almacenan en memoria, pero puedes configurar otros almacenamientos como SQL Server o Redis para aplicaciones de alto rendimiento o distribuidas.
⚙️ Consideraciones de Configuración
Cookies: Las sesiones dependen de una cookie para rastrear y asociar las solicitudes HTTP con la sesión correcta.
Timeout: La propiedad
IdleTimeout
determina cuánto tiempo dura la sesión antes de expirar por inactividad.
🔒 Seguridad
Protección de Datos: ASP.NET Core encripta los datos de sesión usando el sistema de protección de datos.
HttpOnly: Marcar la cookie de sesión como
HttpOnly
previene que los scripts del lado del cliente accedan a la cookie.
🔄 Manejo del Ciclo de Vida de la Sesión
Inicio: La sesión comienza cuando se establece un valor por primera vez.
Fin: La sesión termina cuando expira o se limpia manualmente.
🚀 Rendimiento y Escalabilidad
Almacenamiento en Memoria: Para aplicaciones pequeñas o con poco tráfico.
Distribuido: Para aplicaciones grandes o con alta
Última actualización