web-dev-qa-db-fra.com

ASP.NET: comment accéder à Session à partir du gestionnaire?

je suis essayant de stocker des valeurs dans la session à partir d'une page Handler , avant de faire une redirection vers une page WebForms, qui récupérera les valeurs de la session et pré-remplira le WebForm:

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

Sauf context.Session l'objet est nul.

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

47
Ian Boyd

Implémentez 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");      
  }

}
106
JoshBerke

Implémenter IRequiresSessionState

10
Tim Hoolihan

Est-ce que l'implémentation iRequiresSessionState résout ce problème?

Que diriez-vous de faire un IHttpModule à la place et de remplacer BeginRequest?

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