我目前在ASP.MVC项目中使用自己的会员实现。我有一个帐户,一个帐户可以拥有超过1个会员资格。
我不确定在缓存帐户信息时遵循的最佳方法是什么。我目前正在从控制器的User属性中加载几乎每个请求的帐户信息。
我应该缓存帐户信息吗?如果哪里最好的地方,饼干或会话?
答案 0 :(得分:1)
我建议相当强烈反对会话。它们不能很好地扩展,也不适合web / HTTP类型的体系结构。如果您喜欢REST内容,请参阅this REST article中的“关键REST原则”。
我建议将用户信息放在cookie中(不要过度使用,只需要真正需要的东西)。
并在ASP.NET Forms身份验证cookie中保留敏感信息。请参阅Forms Authentication article,“步骤4:在故障单中存储其他用户数据”。
从数据库中获取其余数据。避免使用premature optimization。
答案 1 :(得分:0)
正如这些问题的情况一样,答案是“它取决于”。
如果您只存储少量字符串数据,Cookie就可以了。存在限制(每个cookie 4k,HTTP标头限制),并且每次请求和响应都会通过线路发送它们。您可能需要从存储在Cookie中的数据“重新充气”您的帐户/会员信息。用户可以选择不接受来自您网站的cookie。
会话是强类型的(没有重新通胀),并且不会随每个请求/响应一起传输。如果您认为您的Web应用程序需要,可以使用多种方法来扩展会话存储。大多数中小型网站使用会话没有问题。