sesiones sesion objects net mvc manejo inicio hacer ejemplo como asp asp.net session

objects - variables de sesion asp.net mvc



ASP.Net: si tengo la ID de sesión, ¿puedo obtener el objeto de sesión? (4)

Esta pregunta está relacionada con esta , aunque creo que estuve un poco extenuado para obtener una buena respuesta. Voy a mantener esto breve.

Estoy trabajando en un controlador web (ashx) que acepta una publicación de formulario desde una página aspx. Cuando el controlador recibe esta publicación del formulario, para hacer lo que necesita hacer, necesita conocer al usuario que inició sesión (User.Identity.Name), pero no puedo confiar en las cookies que envía el navegador.

Sé que puedo obtener el Session.SessionID y colocarlo en un campo de formulario oculto, pero una vez que mi controlador recibe la publicación del formulario, ¿cómo puedo usar ese SessionID para descubrir la identidad del usuario que ha iniciado sesión?

Estoy usando el modo StateServer para el estado de la sesión.


A menos que sea necesario utilizar la sesión directamente, siempre puede almacenar la información sobre la identidad del usuario conectado en un diccionario singleton o caché y hacer referencia a ella a través del ID de sesión almacenado en un campo oculto. Personalmente veo problemas de seguridad en esto, pero no entraré en eso. Consideraría emitir identidades de uso único para este tipo de implementación.



En una implementación de HttpHandler o HttpModule, no siempre se puede acceder a la sesión desde el evento BeginRequest. Hay otro evento que puede manejar, llamado OnAcquireRequestState. Si escribe su código en ese evento, entonces HttpContext.Current.Session no será nulo.