我正在使用asp.net mvc开发一个电子商务应用程序。
用户成功登录系统后,应用程序将从数据库(收藏夹,订单历史记录,未完成的购物车等)中提取其他数据。
如果用户使用了“记住我”选项,那么提取数据的最佳方法是什么?
我正在考虑检查用户是否经过身份验证,并且主页上尚未加载其他数据,但这似乎不是最佳解决方案。
答案 0 :(得分:1)
我有一个用户类,可以将所有这些位一起收集。
在会话开始时,我检查身份验证,创建它,填充它,并将其存储在会话变量中。然后你可以从任何你喜欢的地方访问它(我还创建了一个Globals静态类,它从会话和应用程序变量中获取/转换对象。)或者,你可以在每个页面加载时执行它。
以上内容负责回归用户。但是你还必须记住在登录时创建它,并在注销时(从Accounts控制器)销毁它。
另外,我建议你考虑一下这种方式究竟需要存储什么。会话变量非常适合缓存此数据,但我不知道是否需要缓存订单历史记录。这通常只是偶尔访问。实际上,即使您选择不将类放在会话中,并在每个页面加载时创建它,获得订单历史记录似乎有点过分。 (无论哪种方式,你都在浪费资源 - 将其存储在缓存中或经常收集它。)
詹姆斯