49

我正在尝试将一些值从处理程序页面存储在Session中,然后再重定向到 WebForms 页面,这将获取Session值并预填充 WebForm:

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

除了context.Session对象为空。

如何从处理程序访问会话状态?

4

3 回答 3

111

实现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");      
  }

}
于 2009-06-29T14:22:51.923 回答
10

实施IRequiresSessionState

于 2009-06-29T14:26:08.003 回答
7

实施iRequiresSessionState 能解决这个问题吗?

改用 IHttpModule 并覆盖 BeginRequest 怎么样?

    public void Init(HttpApplication application)
    {
        application.BeginRequest += new EventHandler(context_BeginRequest);
    }
于 2009-06-29T14:27:02.743 回答