HttpContext.Current.Session 自动过期?

How*_*ulf 3 c# asp.net-mvc session caching

我环顾四周,找不到我正在寻找的确切答案。

我想知道存储在的变量/值什么时候HttpContext.Current.Session会被清除?还是它自己永远不会清除?

是浏览器关闭的时候吗?什么时候清除缓存?会话何时结束?

此外,是否HttpContext.Current.Session与其他会话并行运行(其他用户将无法覆盖从我的会话活动中保存的变量)?

我注意到这HttpRuntime.Cache不是并行的,所以你可以在这里存储对所有用户有用且相对静态的东西,这很好,但我需要一些方法来存储仅适用于当前登录用户的信息,并且应该不会被其他用户的会话覆盖或看到。

nsg*_*cev 5

HttpContext.Current.Session 是当前用户的会话。

它的默认过期时间为 20 分钟,之后值将丢失。如果用户清除他的 cookie,这些值也会丢失,因为会话 ID 存储在 ASP.NET_SessionID cookie 中。

在这里您可以找到有关会话HttpContext.Session 属性HttpContext.Cache 属性的更多信息

  • 只是为了稍微改进这个答案,默认过期时间是 20 分钟 [不活动](https://msdn.microsoft.com/en-us/library/6ad7zeeb.aspx#Anchor_2)。 (2认同)