Pergunta

Esta questão já tem uma resposta aqui:

tentando armazenar alguns valores na sessão de um Handler página , antes de eu fazer um redirecionamento para uma página WebForms, que vai pegar os Session valores e pré-preencher o WebForm:

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

Com exceção context.Session objeto é nulo.

Como faço para acessar o estado de sessão a partir de um manipulador?

Foi útil?

Solução

Implementar a System.Web.SessionState.IRequiresSessionState Interface

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

}

Outras dicas

Implementar IRequiresSessionState

A implementação IRequiresSessionState resolver este?

Que tal fazer um IHttpModule vez e substituindo BeginRequest?

    public void Init(HttpApplication application)
    {
        application.BeginRequest += new EventHandler(context_BeginRequest);
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top