它们是一样的吗?还是他们不同?
我读过这篇 SO文章和这篇文章,但他们正在比较 HttpContext.Current.Session 和 Session 而不是 Context.Session。我错过了什么/误解了什么?
Context.Session在一个页面中与 HttpContext.Current.Session 相同。HttpContext.Current.Session通常用于不直接在页面上或没有对当前页面的引用的代码中。
HttpApplication 的 Session 属性表现出与 HttpContext.Current.Session 属性不同的行为。如果可用,它们都将返回对同一个 HttpSessionState 实例的引用。当当前请求没有可用的 HttpSessionState 实例时,它们的作用不同。
在这个答案上,您有完整的答复:
两者都是相同的,没有区别,有时当前会话需要通过不从 Page 继承的代码访问(尽管是一种不好的做法),在这些情况下 httpcontext.current.session 非常方便并且可以访问会话。
是的,它们完全相同。 Context是页面上下文,因此它比HttpContext.Current “更大”(包含更多数据) ,但两者的属性 Session 具有相同的值。