web-dev-qa-db-ja.com

ASP.NET:ハンドラーからセッションにアクセスする方法は?

私は HandlerページからSessionに値を保存しようとしています 、WebFormsページにリダイレクトする前に、Session値を取得し、WebFormに事前入力します。

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

context.Sessionオブジェクトを除いて、nullです。

ハンドラーからセッション状態にアクセスするにはどうすればよいですか?

47
Ian Boyd

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

IRequiresSessionStateを実装する

10
Tim Hoolihan

iRequiresSessionState を実装するとこれは解決しますか?

代わりにIHttpModuleを実行し、BeginRequestをオーバーライドするのはどうですか?

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