登录后在哪里存储用户特定的设置?
问题描述:
在我的ASP.NET MVC应用程序中,我允许用户登录。每个用户都与一家公司相关联。公司ID和公司数据不是数据库中用户表的一部分。用户和公司通过相关的表格(一对多关系)连接。公司ID不是用户表的一部分,因为用户表的设计没有预测到这一点,我们也不允许改变它。登录后在哪里存储用户特定的设置?
当用户登录时,我们希望为该用户获取公司ID并将其存储在某个地方。我们稍后会使用此ID进行查询和其他类型的公司筛选,因为内容是按公司存储的。
我应该在哪里存储公司ID设置以使其在多个Web请求中保持持久性?
答
我看到三个可行的选择
Session
Cookie
这可能会也可能不会在身份验证cookie中,您的选择。到什么时候需要保持它在数据库
查询。如果需要的时间少于x%,那么只需从数据源中获取数据即可。
答
也许这听起来很愚蠢,但是......将信息存储到对象中并将该对象放入会话中怎么办?
+0
我正在使用会话。所以这是一种选择。我正在寻找其他选项。 – mare 2010-10-26 21:39:17
因为性能方面的原因,我会为“将它保存在数据库中”投票。 – NotMe 2010-10-26 21:48:35
为了可靠性,我最终决定使用Session,但将其存储在SQL Server中。 – mare 2010-10-29 17:47:29
@ mare-如果您使用基于SQL Server的会话存储,那么它是否比数据库中的数据库有优势? – 2010-10-29 19:54:38