0

在我的应用程序中,我需要在用户保持登录期间存储一些变量,这些变量用于提供有关用户如何查看其数据的定制体验(预定义的过滤器、语言等)。我需要的数据不超过 1Kb。

我已经阅读了许多绝对鼓励不要将这些数据存储在 Session 对象中的博客文章。在许多此类博客文章中,作者建议改用 TempData。

据我了解,TempData 是短期临时数据的不错选择,不适合在用户保持登录的所有期间缓存数据。

我错了吗?什么是适合我的场景的好选择?

感谢您的帮助:)

4

1 回答 1

2

两种选择:

  1. 饼干
  2. 数据库

如果只需要在用户登录时存储此信息,并且您不想在他回来时保留它,那么 cookie 就可以正常工作。另一方面,如果您想保留用户的自定义设置,则需要将它们存储在数据库中或使用持久 cookie。

会话也是一种选择,但如果您的网站在网络场中运行,请小心 - 在这种情况下,您将需要进程外会话持久性。

据我了解,TempData 是短期临时数据的不错选择,不适合在用户保持登录的所有期间缓存数据。

你是绝对正确的。TempData应仅在以下情况下使用:用户调用控制器操作,此控制器操作将某些内容存储到 TempData 并立即重定向到另一个控制器操作(它从不渲染视图),该操作获取存储的数据并渲染视图(重定向后POST 场景)。

于 2010-09-18T13:42:35.810 回答