1

有一点我不清楚。

假设我有 SomeModule.dll

它有一个名为 UserSession 的静态类。

例如,我可以在此处安全地存储用户特定信息吗:例如:

UserSession.Name = "xxx"

我知道我可以使用 HTTPConext.Session .... 但我想知道会话的范围/主要是,如果用户有一个长时间的会话。假设用户登录并且我在 Session(user) 中存储了一些东西......

如果他在 3 周内回来,我读了他的 cookie 并且它仍然有效,那么页面应该看起来和感觉就像他从未离开过。HTTPContext 或任何会话变量何时被删除并且必须重新查询和重置?

谢谢

4

2 回答 2

1

用户会话从上次请求开始只持续一定时间,我相信 20 分钟是默认值。之后,它可能会持续几分钟,具体取决于垃圾收集器何时执行其操作。它不会持续三周。您可以将必要的值存储在 cookie 中,或者更好的 cookie 中引用数据库记录。然而,所有这些都忽略了安全问题......

于 2013-02-06T21:47:07.327 回答
0

无论持续时间长短,会话变量都不一定是好方法。当您将应用程序部署到网络场时,它们会增加显着的复杂性。如果它是非敏感数据,则使用 cookie 是可行的方法。如果是大量数据的敏感数据,您可以考虑创建某种用户身份验证和/或加密 cookie 数据。

于 2013-02-06T21:53:11.463 回答