C# 特定会话超时

C# 特定会话超时,c#,asp.net,C#,Asp.net,我正在制作一个购物车,而那些还没有登录的人,我正在一个会话中保存他们选择的产品。他们有没有办法让某个特定的会话在特定的时间过期,比如20天后或者其他什么时候 Session[“wishlist”]是我存储用户选择产品的会话的名称。如果您必须将会话保留这么长的时间,那么您可能需要使用它。如果用户关闭浏览器,则您的会话将自动过期,并且用户不会在24天内保持浏览器打开。长时间保持会话可能是一种负担,而不需要服务器 Response.Cookies["wishlist"].Value = "SomeVa

我正在制作一个购物车,而那些还没有登录的人,我正在一个会话中保存他们选择的产品。他们有没有办法让某个特定的会话在特定的时间过期,比如20天后或者其他什么时候


Session[“wishlist”]是我存储用户选择产品的会话的名称。

如果您必须将
会话
保留这么长的时间,那么您可能需要使用它。如果用户关闭浏览器,则您的会话将自动过期,并且用户不会在24天内保持浏览器打开。长时间保持会话可能是一种负担,而不需要服务器

Response.Cookies["wishlist"].Value = "SomeValue";
Response.Cookies["wishlist"].Expires = DateTime.Now.AddDays(24);
编辑


您可能会在cookie中存储一些唯一标识符,而不是用于从持久存储(如数据库)获取购物车的整个购物车。这将允许您稍后分析数据,例如有多少人回来并完成购物等。

无论如何,Cookies都是一个良好的开端。请注意,您只希望对简单数据执行此操作,例如计数和项目ID。用户可以修改它们,因此不要将价格存储在那里:)


如果需要存储更多数据,可能需要将cookie与数据库结合起来。在cookie中存储唯一标识符,并将其与数据库中的一行关联。它更复杂,因为您需要手动处理过期,但它允许您存储更多的信息。

您的意思是要在服务器上保持此会话20天?将会话保留很长时间和服务资源的不良做法是否无效。那么我应该将愿望列表存储在哪里?缓存?尝试将其存储在cookie+1中以进行扩展…这并不意味着您必须将整个购物车存储在cookie中…仅存储购物车唯一标识符