Asp.net System.Web.HttpContext.Current.Session null en global.asax
global-asax (4)
Tengo un objeto principal de seguridad personalizado que configuré en el archivo global.asax para el hilo actual y todo está bien, sin problemas normalmente.
Sin embargo, solo estoy agregando una característica de imagen dinámica haciendo que una página sirva la imagen y cada vez que esa página de imagen dinámica se carga, System.Web.HttpContext.Current.Session es nula en global.asax lo que me impide configurar la seguridad. principal como normal y problemas en cascada desde ese punto en adelante.
Normalmente, la sesión es nula en global.asax solo una vez durante una sesión al inicio cuando el usuario inicia sesión, luego siempre está disponible con esta única excepción.
La página de imagen dinámica se carga cuando el navegador encuentra una imagen en la página original, es decir,
Supongo que este es un aspecto del hecho de que el navegador está solicitando esa página sin enviar algunas credenciales con ella.
Cualquier ayuda sería muy apreciada.
John,
Supongo que estás usando un controlador de ashx para el controlador. Si es así, asegúrese de derivar de IRequiresSessionState, por ejemplo:
public class Images : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{ }
Si no está usando un ashx, ¿puede describir lo que quiere decir con una página de imagen dinámica?
Josh
La sesión no tiene nada que ver con iniciar sesión o no.
¿Qué evento anula cuando quiere acceder a la sesión? La sesión no está disponible hasta que se haya disparado AcquireRequestState.
Para obtener más información, consulte: http://msdn.microsoft.com/en-us/library/9ysfzy8h.aspx
sí, tienes razón Esto sucede porque la dependencia del objeto puede interferir en el caso de otra transferencia de página paralela que puede romper el cortafuegos entre sesiones
en Global.asax.cs Session_Start () y Session_End () necesitas usar "this.Session" !! La razón de esto es que HttpContext solo está disponible cuando hay una solicitud que se está procesando. ¡Es por eso que obtienes un NULL en HttpContext.Current.Session!
Desde el sitio web de Microsoft: "HttpContext Class: encapsula toda la información específica de HTTP sobre una solicitud HTTP individual".
Pero no te sientas mal ... ¡me enamoré de este también! :)