我应该从cookie填充会话变量吗?

时间:2015-01-31 19:01:51

标签: c# asp.net-mvc session cookies

我有一个具有登录功能的网站和一个“记住我”选项。在我的用户表中,我有一个128位的随机令牌,我把它放在cookie中,然后用来查找用户。

我将使用“LoggedInUser”,它是我的“User”类的一个实例,它将填充数据库查找,因此我可以检索用户的用户名,ID和其他信息。现在假设用户有一个cookie,我应该只使用cookie值执行用户查找,还是应该将令牌存储在会话中并使用它执行查找?这里主要担心的是安全性和性能,IE更安全,加载时间更短?

1 个答案:

答案 0 :(得分:0)

会话ID通常存储在cookie中 - 因此,无论您是自己在ID中存储ID还是使用SessionState cookie,几乎没有任何安全差异。

性能相同 - 主要成本将在数据库查找中显示,显然如果您执行额外的步骤(从会话状态添加/红色),它将(可能无法测量)更快。

注意:

  • "随机"会话状态产生的大量安全评论,希望你的一个也一样好。
  • 会话状态cookie未标记为" secure"默认情况下也将通过HTTP发送,显然你的不会 - 所以自定义cookie好一点。
  • 会话状态可以配置为无cookie,在您的情况下您的方案有点安全(因为您可以错误地共享cookie,但网址很容易分享)。