C# 我应该从cookie中填充会话变量吗?
我有一个带有登录功能的网站,还有一个“记住我”选项。在我的用户表中,我有一个128位的随机令牌,我把它放在cookie中,然后用它来查找用户C# 我应该从cookie中填充会话变量吗?,c#,asp.net-mvc,session,cookies,C#,Asp.net Mvc,Session,Cookies,我有一个带有登录功能的网站,还有一个“记住我”选项。在我的用户表中,我有一个128位的随机令牌,我把它放在cookie中,然后用它来查找用户 我将使用一个“LoggedInUser”,它是我的“User”类的一个实例,它将填充一个数据库查找,因此我可以检索用户的用户名、id和其他信息。现在假设用户有一个cookie,我应该简单地使用cookies值执行用户查找,还是应该将令牌存储在会话中并使用该值执行查找?这里主要担心的是安全性和性能,即哪个更安全,哪个加载时间更短?会话Id通常存储在cooki
我将使用一个“LoggedInUser”,它是我的“User”类的一个实例,它将填充一个数据库查找,因此我可以检索用户的用户名、id和其他信息。现在假设用户有一个cookie,我应该简单地使用cookies值执行用户查找,还是应该将令牌存储在会话中并使用该值执行查找?这里主要担心的是安全性和性能,即哪个更安全,哪个加载时间更短?会话Id通常存储在cookie中-因此,无论您自己将Id存储在cookie中还是使用SessionState cookie,几乎没有安全差异 性能方面也是如此-主要的成本将在DB查找中,显然,如果您执行两个额外的步骤(从会话状态添加/red),它将更快(可能无法测量) 注:
- 会话状态生成的“随机”经过了大量的安全审查,希望您的审查也一样好
- 会话状态cookie在默认情况下未标记为“安全”,因此也将通过HTTP发送,显然您的不会-因此自定义cookie更好一些
- 会话状态可以配置为无cookie,在您的情况下,您的方案有点安全(因为您不能错误地共享cookie,但URL很容易共享)