0

我有一个与会话中的用户配置文件存储相关的非常基本的问题。

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

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

谢谢

4

1 回答 1

2

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

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

于 2013-03-15T14:15:32.533 回答