사용자 개체를 세션에 저장하고 컨트롤러에서 꺼내어 일부 데이터를 기록하는 경우가 있습니다. 그러나 사용자가 동시에 게시 할 때 세션은 어떤 이유로 든 혼합됩니다.사용자간에 MVC.net 세션이 섞여 있습니다.
누구나 가능합니까?
전형적인 게시물 :
[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"]));
}
나는 모든 페이지에 세션 ID를 에코, 사용자의 몇 웹 사이트를 사용할 때 그들은 서로 다른 세션 + 세션 id ...
@update를 얻을 : 숙련 된 개발자 3 명은 2 일 동안 문제를 찾고 있지만 해결책은 없습니다. 이미 코드에서 약 95 %를 제거했지만 여전히 같은 문제입니다. 서버가 다른 세션의 응답을 다시 게시합니다.
코드를 게시 할 수 있습니까? –
[Application_AcquireRequestState 세션이 사용자간에 공유 됨] 가능한 중복 (http://stackoverflow.com/questions/4604666/application-acquirerequeststate-session-is-shared-between-users) - 새 것을 만드는 대신 원본을 편집하십시오. – jfar
여기서 Application_AcquireRequestState를 사용하지 않았습니다. 그 함수에서 코드를 제거했지만, 여전히 @jfar와 모두 관련이 있는지를 알아야합니다 : 매우 건설적이고, 동일한 결과로 두 가지 다른 문제가 있습니다. – Nealv