Lor*_*nzo 0 cookies asp.net-mvc shopping-cart
我有一个使用 Session 的购物车实现,并且想要迁移到基于 cookie 的购物车。此外,实际上我将完整的购物车存储在会话中,并希望迁移到只有 cartID 位于 cookie 中而内容位于数据库中的版本。
我读过很多博客文章,甚至还有关于 SO 的问题,但在某些领域仍然存在一些困惑:
例如,我正在使用 asp net mvc 和 c#。
我已经使用 Session 来保存整个购物车。后来,我只将购物车 ID 存储在 cookie 中,并将实际商品存储在数据库中。
在我的场景中,我首先将商品暂时存储在购物车中。结帐成功后,我将商品从购物车移动到Order和OrderItem表,并删除购物车。
这是你可以从我的错误中学到的东西。
cookie的生命周期是怎样的?实际上,当新会话开始时,我会创建一个新购物车。然后,我根据客户操作管理会话(添加到购物车、从购物车中删除、结帐时清除)
新会话开始时不要创建 cookie。相反,您希望仅在客户将商品添加到购物车后才在数据库中创建条目。然后将该GUID存储在 cookie 中。
主要原因是如果你太早创建cookie,你最终会得到太多废弃的购物车。
仅供参考:您想安排一项任务在一定时间范围后清理废弃的购物车。
如何创建唯一的 cookieId
使数据库列 ID uniqueidentifier。创建新的购物车后,将返回的GUID保存在cookie中。
处理数据库任务的最佳方法是什么?使用 jQuery 还是在服务器端处理所有事情更好?
您想要从服务器端生成 GUID,如上所述。
不要将 Integer 与 Identity Increment 一起使用。它最终会出现很大的安全漏洞,因为你可以轻松预测这个数字。