登录后在哪里存储用户特定的设置?

问题描述:

在我的ASP.NET MVC应用程序中,我允许用户登录。每个用户都与一家公司相关联。公司ID和公司数据不是数据库中用户表的一部分。用户和公司通过相关的表格(一对多关系)连接。公司ID不是用户表的一部分,因为用户表的设计没有预测到这一点,我们也不允许改变它。登录后在哪里存储用户特定的设置?

当用户登录时,我们希望为该用户获取公司ID并将其存储在某个地方。我们稍后会使用此ID进行查询和其他类型的公司筛选,因为内容是按公司存储的。

我应该在哪里存储公司ID设置以使其在多个Web请求中保持持久性?

我看到三个可行的选择

  • Session

  • Cookie
    这可能会也可能不会在身份验证cookie中,您的选择。

  • 到什么时候需要保持它在数据库
    查询。如果需要的时间少于x%,那么只需从数据源中获取数据即可。

+2

因为性能方面的原因,我会为“将它保存在数据库中”投票。 – NotMe 2010-10-26 21:48:35

+0

为了可靠性,我最终决定使用Session,但将其存储在SQL Server中。 – mare 2010-10-29 17:47:29

+0

@ mare-如果您使用基于SQL Server的会话存储,那么它是否比数据库中的数据库有优势? – 2010-10-29 19:54:38

也许这听起来很愚蠢,但是......将信息存储到对象中并将该对象放入会话中怎么办?

+0

我正在使用会话。所以这是一种选择。我正在寻找其他选项。 – mare 2010-10-26 21:39:17

大多数人使用Session或饼干这种类型的功能:

不能回答任何比这个问题的答案更好:

Cache VS Session VS cookies?