2013-12-02 5 views
0

Создание этого, поскольку я смотрел MVC4 Session not persisted between requests и другие, но никто из них не помог решить мою проблему.Сессия не сохраняется между запросами

У меня есть следующие два способа действий на мой контроллер MVC:

public ActionResult Capture(string testValue) 
    { 
     Session["Test"] = testValue; 
     ViewBag.Test = Session["Test"]; // This works and correctly sets the value 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Capture(SomeViewModel viewModel) 
    { 
     ViewBag.Test = Session["Test"]; // At this point the value in the session is inexplicably null, and thus so is the item in the ViewBag 

     return View(viewModel); 
    } 

Когда я пытаюсь использовать ViewBag.Test на мой взгляд

  • На начальном Get, она работает
  • На Сообщение, оно равно null.

Такое же поведение, если я устанавливаю точку останова в коде, объект сеанса задан и имеет правильное значение в начальном «Get», но имеет значение null в столбце после.

Что происходит с моей сессией, почему значение не сохраняется между запросами?

Я установил, что сеанс создается по каждому запросу, но не может понять, почему.

ответ

2

В связи с этим они предназначены для безопасного применения, у меня есть следующие настройки в моем web.config: <httpCookies httpOnlyCookies="true" requireSSL="true" />

Однако моя локальная среда не работает над HTTPS. Это приводит к тому, что сеанс .net воссоздается по каждому отдельному запросу, так как cookie не может быть выдан через незащищенное соединение. Удаление этой строки из основного web.config и добавление ее обратно для преобразования web.release.config решило проблему.

Смежные вопросы