HttpContext.Current.Session自动过期?

3

我已经搜索了很多,但没能找到我需要的确切答案。

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

是当浏览器关闭时?缓存被清除时?还是会话结束时?

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

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


当会话结束并且每个新请求生成一个新会话时,因此不会发生覆盖问题。 - Dhaval Patel
1个回答

7

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

它默认过期时间为20分钟,如果超过这个时间,值将会丢失。如果用户清除了他的Cookies,也会丢失值,因为Session ID存储在ASP.NET_SessionID Cookie中。

在这里,您可以找到有关Session HttpContext.Session PropertyHttpContext.Cache Property的更多信息。


2
仅为了稍微完善这个答案, 默认过期时间是20分钟无操作 - Tim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接