asp.net-mvc - MVC.net session 在用户之间混合

标签 asp.net-mvc session session-state session-variables

我将用户对象存储在 session 中,将它们拉出到 Controller 中,有时会向其中写入一些数据。但是当用户同时发帖时, session 会由于某种原因而混合在一起。

有人知道这是怎么可能的吗?

典型帖子:

  [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"]));
    }

我在每个页面上回显 session ID,当几个用户使用该网站时,他们会得到彼此的 session + session ID ...

@update:3位经验丰富的开发人员已经找了2天的问题了,仍然没有解决。已经删除了大约 95% 的代码,仍然是同样的问题。服务器发回另一个 session 的响应

最佳答案

这是不可能的。 所以这是我的猜测: 您错误地测试了这一点,您使用的是同一浏览器中的不同选项卡。 有些人不知道这不会创建不同的 session 。

尝试在 2 个不同的浏览器(即 firefox 和 chrome)上进行测试,因为它们不会共享 session (因为 session ID 通常存储在 cookie 中)。

如果是这种情况,请报告。

关于asp.net-mvc - MVC.net session 在用户之间混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4605803/

相关文章:

asp.net-mvc - 用于多个应用程序的 mvc 4 web api

c# - 如何首先在代码中创建函数?

崩溃/终止后的 Android 任务返回堆栈和应用程序 session 管理

linux - 如何在linux中提取进程层次结构信息?

ruby-on-rails - 阻止设备在成功注册后自动创建 session

c# - 使用 Entity Framework 、代码优先和 CRUD 操作的存储库模式

c# - Html.ActionLink() 调用错误

iOS Facebook SDK - 手动使 session 过期 - Kiosk 应用程序

PHP session 在 SSL 上重置

http - 在服务器上使用无状态的 Spring Web Flow