我在几个 .com 上工作过,我们从未使用过内置的 ASP.NET 会话状态。它一直在检查 cookie 以进行有效的会话检查,并将会话与数据库中的内容或其他方式进行比较,但最终它是 cookie。我们没有使用任何基于 ASP.NET 的会话对象。
那么为什么人们将所有这些会话状态服务器废话与 MVC 一起使用呢?我从未见过需要它。
我在几个 .com 上工作过,我们从未使用过内置的 ASP.NET 会话状态。它一直在检查 cookie 以进行有效的会话检查,并将会话与数据库中的内容或其他方式进行比较,但最终它是 cookie。我们没有使用任何基于 ASP.NET 的会话对象。
那么为什么人们将所有这些会话状态服务器废话与 MVC 一起使用呢?我从未见过需要它。
我从未见过需要它。
我也是。我从不在我的 Web 应用程序中使用 ASP.NET 会话状态。我更喜欢以 RESTful 方式设计它们,而不是引入状态。我在任何 web 应用程序中做的第一件事就是在 web.config 中添加以下行,以确保任何未来的开发人员不会犯使用 session 的错误:
<sessionState mode="Off" />
我猜人们正在使用它来简化跨多个请求的一些易失性数据的存储。
ASP.NET 确实有一个由会话 ID 索引的 SQL 支持的会话状态,该会话 ID 会根据 cookie 的会话 ID 进行检查。ASP.NET 还允许您将会话存储在内存中(默认)。MVC 中提供了相同的构建块。
基本上你已经实现的(“总是检查 cookie 是否有有效的会话检查,并将会话与数据库中的内容或其他方式进行比较,但最终它是 cookie。”)正是你在呸呸呸!重新发明轮子没有意义...
至于具体的用例,你可以用它来处理任何需要持久化的状态。在您的特定情况下,只需检查您存储 cookie 并查找数据库的原因 - 这正是您使用会话状态的地方(SQL 或内存)
您如何处理无活动的会话超时需求?Cookie 只是不是很安全。