C# 基于ASP.NET cookie的会话,是否有会话状态模块?

C# 基于ASP.NET cookie的会话,是否有会话状态模块?,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在寻找一种在ASP.NET中执行完全基于cookie的会话的方法。我不打算在其中存储复杂的对象,只想存储字符串键值对 我正在寻找一些类似的东西如何发挥!框架处理会话,它基本上将所有会话数据编码到一个cookie中,并负责在每个请求中对其进行加密/解密 我不想为此编写我自己的SessionStateModel,如果可以避免的话,它是否存在 谢谢 编辑:我不需要存储比cookie只能处理几个标识符更多的数据,而且我仍然需要特定于每个会话的键值对。我想使用cookie,这样就不需要在进程中或数据库

我正在寻找一种在ASP.NET中执行完全基于cookie的会话的方法。我不打算在其中存储复杂的对象,只想存储字符串键值对

我正在寻找一些类似的东西如何发挥!框架处理会话,它基本上将所有会话数据编码到一个cookie中,并负责在每个请求中对其进行加密/解密

我不想为此编写我自己的SessionStateModel,如果可以避免的话,它是否存在

谢谢


编辑:我不需要存储比cookie只能处理几个标识符更多的数据,而且我仍然需要特定于每个会话的键值对。我想使用cookie,这样就不需要在进程中或数据库中维护服务器状态,这样我就可以很容易地添加更多服务器,也不需要太依赖外部应用程序。没有状态服务器/memcached/redis等,除非您要创建大量数据,否则您将无法在cookie中存储那么多数据


如果您想使用键值对,请考虑使用诸如memcached或redis之类的缓存。如果您不在web场中,甚至服务器缓存也不存在?

我认为不存在缓存:由于使用cookie固有的限制,尤其是最大大小的限制,它太脆弱了

我知道这并没有回答你的问题,但我不会为此实现SessionStateModel。这样做意味着使用会话的任何第三方组件,或使用会话的任何未来维护程序员可能会在cookie中存储不适当的数据,例如,数据太大

我建议您编写自己的面向API的循环,只使用原语值字符串、Int32、DateTime等存储键值对,。。。在你的饼干里

您还可以使API cookie知晓-例如,设置HttpCookie.Path,它使您能够:

避免为不需要它们的请求发送cookie javascript、图像等

对于应用程序的不同区域,具有相同名称但不同路径的不同Cookie。这有助于降低cookie的大小


浏览器将只支持少量cookie。如果我们开始创建更多的cookie,可能会丢失会话cookie或一些重要的cookie。我说的是创建一个cookie,并对其中的所有数据进行编码。到底怎么玩!框架会议工作