57 votes

Comment utiliser l'état de session ASP.NET dans un HttpHandler?

J'ai un HttpHandler qui est exécuté sur un client page (croix de domaine, pas sur notre serveur IIS, etc), et quand ils cliquez sur notre lien, il déclenche le Gestionnaire sur notre serveur. Jusqu'à présent, tout fonctionne normalement.

J'essaie maintenant d'utiliser le Système.Web.HttpContext.Objet de la Session, mais il est nul. Je pense qu'il est nul parce que nous n'avons pas une séance jusqu'à ce que notre HttpHandler est invoquée? Et les multiples appels à la gestionnaire de créer une nouvelle session par appel? Si c'est le cas, avez-MS, il suffit de désactiver l'objet de Session lors de l'appel dans un HttpHandler? Quelqu'un peut-il confirmer cela?

Si c'est le cas, que faites-vous pour maintenir l'état entre les appels? Une sorte de SQL base de données de l'objet? Un fichier?

TIA

139voto

Michael Morton Points 2786

Demandez à votre HttpHandler d'hériter de IRequiresSessionState . Cela permettra l'utilisation de l'état de la session. IRequiresSessionState peut être trouvé dans l'espace de noms System.Web.SessionState .

28voto

Je pense que vous devez implémenter l'interface vide IReadOnlySessionState, de sorte que le contexte sera chargé.

modifier pour ajouter:

Selon Michael Morton réponse, vous pouvez également mettre en œuvre IRequiresSessionState, qui va vous donner l'accès en écriture à la Séance de l'objet

-10voto

Joe Davis Points 438

essayez d'utiliser le contexte actuel ...

 System.Web.HttpContext.Current.Session
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X