Session变量中的用户配置文件

时间:2013-03-15 07:21:05

标签: asp.net session-variables simplemembership

我在会话中有一个与用户个人资料存储相关的基本问题。

假设我有一个存储用户配置文件的Account表,并且我已将此表链接到ASP.NET SimpleMembership。用户登录后,控制器可能需要检索其帐户中的信息或基于其帐户。我现在正在做的是每次需要数据时查询数据库,类似于:_dbContext.Accounts.Where(a => a.EmailAddress == User.Identity.Name).Single()

但我担心这会对数据库造成不必要的负担,并认为一个更好的想法(也许是每个人都做的!)是在用户登录后将Account对象存储在Session变量中,从而实现直接访问无需重新查询数据库。 这是通常的做法吗? Session变量和身份验证之间是否存在“取消同步”的风险?

由于

1 个答案:

答案 0 :(得分:2)

我们的网站在登录时对用户类型对象使用相同类型的方法。确认登录后,我们将用户对象存储在会话变量中。如果更改或更新某些内容,则更新对象,并根据情况更改数据库中的更新(时间意味着在更改后立即更新,或者在收集一组更改后)。

这取决于您的系统有多复杂。我们相当复杂,事实证明这是一种非常可靠的方式 - 不需要经常维护和更新。