在我的应用程序中,我需要在用户保持登录期间存储一些变量,这些变量用于提供有关用户如何查看其数据的定制体验(预定义的过滤器、语言等)。我需要的数据不超过 1Kb。
我已经阅读了许多绝对鼓励不要将这些数据存储在 Session 对象中的博客文章。在许多此类博客文章中,作者建议改用 TempData。
据我了解,TempData 是短期临时数据的不错选择,不适合在用户保持登录的所有期间缓存数据。
我错了吗?什么是适合我的场景的好选择?
感谢您的帮助:)
在我的应用程序中,我需要在用户保持登录期间存储一些变量,这些变量用于提供有关用户如何查看其数据的定制体验(预定义的过滤器、语言等)。我需要的数据不超过 1Kb。
我已经阅读了许多绝对鼓励不要将这些数据存储在 Session 对象中的博客文章。在许多此类博客文章中,作者建议改用 TempData。
据我了解,TempData 是短期临时数据的不错选择,不适合在用户保持登录的所有期间缓存数据。
我错了吗?什么是适合我的场景的好选择?
感谢您的帮助:)
两种选择:
如果只需要在用户登录时存储此信息,并且您不想在他回来时保留它,那么 cookie 就可以正常工作。另一方面,如果您想保留用户的自定义设置,则需要将它们存储在数据库中或使用持久 cookie。
会话也是一种选择,但如果您的网站在网络场中运行,请小心 - 在这种情况下,您将需要进程外会话持久性。
据我了解,TempData 是短期临时数据的不错选择,不适合在用户保持登录的所有期间缓存数据。
你是绝对正确的。TempData应仅在以下情况下使用:用户调用控制器操作,此控制器操作将某些内容存储到 TempData 并立即重定向到另一个控制器操作(它从不渲染视图),该操作获取存储的数据并渲染视图(重定向后POST 场景)。