2012-05-14 17 views
6

Necesito unir de alguna manera mis datos personalizados al HttpRequest manejados por mis módulos personalizados de IIS, para que el código que se ejecuta en etapas anteriores de IIS pipeline adhiera un objeto y el código que se ejecuta en etapas posteriores pueda recuperar el objeto y usarlo ninguna otra funcionalidad del procesamiento de interconexión de IIS se altera agregando ese objeto.¿Cómo asocio algunos datos personalizados con HttpRequest actual?

Los datos deben permanecer en una sola solicitud HTTP. No es necesario que se almacenen entre las solicitudes. Necesito que se "restablezca" automáticamente para cada nueva solicitud, de modo que cuando llegue una nueva solicitud no contenga objetos que mi código adjunte a la solicitud anterior.

Parece que HttpContext.Items es el camino a seguir, aunque la descripción de MSDN de su propósito no es muy clara.

¿Está utilizando HttpContext.Current.Items la manera de resolver mi problema?

+0

lo siento borré mi respuesta - parece que no entiendo su pregunta completamente. puedes elaborar ? –

+0

@Royi Namir: Actualicé la pregunta. – sharptooth

+0

Sí, parece que 'HttpContext.Items' es lo que quiere en su escenario. De acuerdo, la explicación de MSDN es bastante escueta, pero verás que casi todo lo que vas a utilizar implementará 'IHttpModule' o' IHttpHandler' ('System.Web.UI.Page' por ejemplo implementa' IHttpHandler') –

Respuesta

4

Esto debería funcionar - He hecho esto en un proyecto antes.

tengo una clase que tiene una propiedad estática como esto -

public class AppManager 
{ 
    public static RequestObject RequestObject 
    { 
     get 
     { 
      if (HttpContext.Current.Items["RequestObject"] == null) 
      { 
       HttpContext.Current.Items["RequestObject"] = new RequestObject(); 
      } 

      return (RequestObject)HttpContext.Current.Items["RequestObject"]; 
     } 
     set { HttpContext.Current.Items["RequestObject"] = value; } 
    } 
} 

Y luego RequestObject contiene todos mis datos personalizados es así, en mi aplicación que pueda hacer

AppManager.RequestObject.CustomProperty 

Hasta ahora tengo no se encuentran problemas en la forma en que funciona HttpContext.Items.

Cuestiones relacionadas