1

我在几个 .com 上工作过,我们从未使用过内置的 ASP.NET 会话状态。它一直在检查 cookie 以进行有效的会话检查,并将会话与数据库中的内容或其他方式进行比较,但最终它是 cookie。我们没有使用任何基于 ASP.NET 的会话对象。

那么为什么人们将所有这些会话状态服务器废话与 MVC 一起使用呢?我从未见过需要它。

4

3 回答 3

4

我从未见过需要它。

我也是。我从不在我的 Web 应用程序中使用 ASP.NET 会话状态。我更喜欢以 RESTful 方式设计它们,而不是引入状态。我在任何 web 应用程序中做的第一件事就是在 web.config 中添加以下行,以确保任何未来的开发人员不会犯使用 session 的错误:

<sessionState mode="Off" />

我猜人们正在使用它来简化跨多个请求的一些易失性数据的存储。

于 2012-05-24T05:52:11.910 回答
2

ASP.NET 确实有一个由会话 ID 索引的 SQL 支持的会话状态,该会话 ID 会根据 cookie 的会话 ID 进行检查。ASP.NET 还允许您将会话存储在内存中(默认)。MVC 中提供了相同的构建块。

基本上你已经实现的(“总是检查 cookie 是否有有效的会话检查,并将会话与数据库中的内容或其他方式进行比较,但最终它是 cookie。”)正是你在呸呸呸!重新发明轮子没有意义...

至于具体的用例,你可以用它来处理任何需要持久化的状态。在您的特定情况下,只需检查您存储 cookie 并查找数据库的原因 - 这正是您使用会话状态的地方(SQL 或内存)

于 2012-10-24T06:45:59.373 回答
0

您如何处理无活动的会话超时需求?Cookie 只是不是很安全。

于 2012-05-24T17:14:34.633 回答