47 votes

ASP.NET: Comment accéder à Session depuis un gestionnaire?

J'essaie de stocker certaines valeurs dans la session à partir d'une page de gestionnaire , avant de faire une redirection vers une page WebForms, ce qui permettra de récupérer les valeurs de la session et de pré-remplir le formulaire Web:

 public class Handler : IHttpHandler
{
   public void ProcessRequest(HttpContext context)
   {
      ...
      context.Session["StackOverflow"] = "overflowing";
      context.Response.Redirect("~/AnotherPage.aspx");
      ...
   }
   ...
 }
 

Sauf que context.Session objet est nul.

Comment puis-je accéder à l'état de session à partir d'un gestionnaire?

108voto

JoshBerke Points 34238

Implémenter l'interface System.Web.SessionState.IRequiresSessionState

 public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{   
  public void ProcessRequest(HttpContext context)  
  {      
    context.Session["StackOverflow"] = "overflowing";      
    context.Response.Redirect("~/AnotherPage.aspx");      
  }

}
 

10voto

Tim Hoolihan Points 6982

Mettre en œuvre IRequiresSessionState

7voto

Amy Points 8019

La mise en œuvre de iRequiresSessionState résout-elle ce problème?

Qu'en est-il de faire un IHttpModule à la place et de remplacer BeginRequest?

     public void Init(HttpApplication application)
    {
        application.BeginRequest += new EventHandler(context_BeginRequest);
    }
 

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