2009-04-14 12 views
1

Dans un HttpModule, je mets un élément dans le contexte, comme celui-ci:Pourquoi ne puis-je pas définir un élément dans HttpContext dans un module puis le récupérer dans mon gestionnaire?

HttpContext.Current.Items.Add("MyKey", "Hello world!"); 

Directement sous ce code (toujours à l'intérieur du module), je peux récupérer cette chaîne de la collection, donc je sais qu'il a obtenu ajouté .

Avance rapide vers mon gestionnaire actuel (un formulaire Web - .aspx). J'essaie de récupérer cet article:

string myString = HttpContext.Current.Items["MyKey"].ToString(); 

Malheureusement, c'est NULL - l'article n'est pas là.

Je filé la collection, et au moment où il arrive à mon gestionnaire, la collection Items a deux clés:

  • ASPSESSION
  • AspSessionIDManagerInitializeRequestCalled

Après avoir mis le point dans la module, j'appelle RewritePath. Je ne sais pas si cela a quelque chose à voir avec ça.

Répondre

0

Mon problème était qu'une redirection s'est glissée là. Donc, la requête où j'ai défini les valeurs et la requête où j'ai lu les valeurs étaient en fait deux demandes distinctes. Il est allé si vite que je n'ai pas remarqué, même lors du débogage.

0

Pas tout à fait clair sur le flux de votre code, mais essayez d'utiliser HttpContext.Items au lieu de la collection HttpContext.Current.Items. Consultez ce lien - http://odetocode.com/articles/111.aspx