¿Cómo utilizar las sesiones en una aplicación ASP.NET MVC 4?
Soy nuevo en ASP.NET MVC. He utilizado PHP antes y fue fácil crear una sesión y seleccionar los registros de los usuarios basados en las variables de la sesión actual.
He buscado por todas partes en Internet un sencillo tutorial paso a paso que pueda mostrarme cómo crear y utilizar sesiones en mi aplicación C# ASP.NET MVC 4. Quiero crear una sesión con variables de usuario a la que pueda acceder desde cualquier parte de mis controladores y poder utilizar las variables en mis consultas LINQ.
-¡Gracias de antemano!
103
3
Prueba con
Debido a la naturaleza sin estado de la web, las sesiones son también una forma extremadamente útil de persistir objetos a través de las peticiones, serializándolos y almacenándolos en una sesión.
Un caso perfecto de uso de esto podría ser si necesitas acceder a información regular a través de tu aplicación, para ahorrar llamadas adicionales a la base de datos en cada solicitud, estos datos pueden ser almacenados en un objeto y des-serializados en cada solicitud, así:
Nuestro objeto reutilizable y serializable:
Caso de uso:
Una vez serializado este objeto, podemos utilizarlo en todos los controladores sin necesidad de volver a crearlo o consultar la base de datos para los datos que contiene.
Inyecta tu objeto de sesión usando Inyección de Dependencia.
En un mundo ideal, deberíamos 'programar a una interfaz, no a una implementación' e inyectar nuestro objeto de sesión serializable en nuestro controlador utilizando el contenedor de Inversión de Control de nuestra elección, de esta manera (este ejemplo utiliza StructureMap ya que es con el que estoy más familiarizado).
A continuación, registraría esto en su archivo
Global.asax.cs
.Para aquellos que no están familiarizados con la inyección de objetos de sesión, puede encontrar una entrada de blog más profunda sobre el tema aquí.
Unas palabras de advertencia:
Vale la pena señalar que las sesiones deben mantenerse al mínimo, las sesiones grandes pueden empezar a causar problemas de rendimiento.
También se recomienda no almacenar datos sensibles en ellas (contraseñas, etc.).
Así es como funciona el estado de la sesión en ASP.NET y ASP.NET MVC:
Visión general del estado de sesión en ASP.NET
Básicamente, se hace esto para almacenar un valor en el objeto Session:
Para recuperar el valor: