2010-01-28 11 views
31

Estoy tratando de acceder a la variable de sesión en Asp.Net manejador de ashx como se muestra a continuación.Asp.Net Session es nulo en el archivo ashx

public void ProcessRequest (HttpContext context) { 
     context.Session["VariableName"] = Id; 
    } 

Pero el context.Session siempre es nulo dentro del método anterior. ¿Cómo accedo a los objetos de sesión en el archivo ashx?

Respuesta

94

Tiene que "implementar" ya sea IRequiresSessionState o IReadOnlySessionState, proporcionando el primero el acceso completo a la sesión, y el último proporcionando acceso de solo lectura.

Estoy citando "implementar" aquí porque estos dos son los llamados "marker interfaces", lo que significa que no tienen miembros.

+2

gracias! necesitaba esto también – Michel

+3

Tener un voto favorable señor. Lo único que lamento es que solo puedo dar uno. – CountMurphy

+0

¡Genial! Y sobre las "interfaces de marcador", ¿no sería mejor si hicieran esto como Anotaciones? – everton

2

En VB, implementar las interfaces mencionadas por Anton (IRequiresSessionState o IReadOnlySessionState) como esto:

Public Class MyAshxFile 

    Implements System.Web.IHttpHandler 
    Implements System.Web.SessionState.IRequiresSessionState ''need this for session variables 
    Implements System.Web.SessionState.IReadOnlySessionState ''need this for session variables 
Cuestiones relacionadas