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