ASP.NET:Как получить доступ к сеансу из обработчика?[дубликат]

StackOverflow https://stackoverflow.com/questions/1058568

Вопрос

На этот вопрос уже есть ответ здесь:

i'm попытка сохранить некоторые значения в Сессия из a Обработчик Страница, прежде чем я сделаю перенаправление на страницу WebForms, которая подберет Сессия значения и предварительно заполните веб-форму:

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

За исключением context.Session объект равен нулю.

Как мне получить доступ к состоянию сеанса из обработчика?

Это было полезно?

Решение

Внедрить System.Web.Состояние сеанса.IRequiresSessionState интерфейс

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

}

Другие советы

Реализовать IRequiresSessionState

Реализует ли Состояние IRequiresSessionState решить эту проблему?

Как насчет того, чтобы вместо этого использовать IHttpModule и переопределить BeginRequest?

    public void Init(HttpApplication application)
    {
        application.BeginRequest += new EventHandler(context_BeginRequest);
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top