Я храню пользовательские объекты в сеансе, вытаскиваю их в контроллеры и иногда записываю в них некоторые данные. но когда пользователи публикуют сообщения одновременно, сессии почему-то смешиваются.
Кто-нибудь знает, как это возможно?
Типичный пост:
[HttpPost]
public ActionResult Index(QuestionModel model, FormCollection collection)
{
var person = ((Person)Session["Person"]);
if (!ModelState.IsValid)
{
ModelState.Clear();
ModelState.AddModelError("", Global.Global.error);
return View(new QuestionModel(person.page, (CultureInfo)Session["culture"]));
}
person.page = model.Page;
while (person.Answers.Count > model.Page - 1)
{
person.Answers.RemoveAt(person.Answers.Count - 1);
}
var answer = new Answer() { answer = model.ChosenAnswer, Question = "Q" + person.page };
person.Answers.Add(answer);
if (!CheckForNextPage(person.page)) { person.hasFinishedQuestions = true; return RedirectToRoute("Result"); }
person.page++;
return View(new QuestionModel(person.page, (CultureInfo)Session["culture"]));
}
Я отображаю идентификатор сеанса на каждой странице, и когда несколько пользователей используют веб-сайт, они получают сеанс друг друга + sessionid ...
@ обновление: 3 опытных разработчика искали проблему в течение 2 дней, но до сих пор не нашли решения. уже удалили около 95% кода, все та же проблема. сервер отправляет ответы из другого сеанса