对System.Web.HttpContext.Current的混淆

本文关键字:Current HttpContext System Web | 更新日期: 2023-09-27 18:26:05

所以在 silverlight 应用程序的服务器代码中,我看到多个对System.Web.HttpContext.Current.User.Identity.Name的引用。问题是:如果System.Web.HttpContext.Current是一个静态属性,那么如何使用不同的System.Web.HttpContext.Current对象处理不同的同时请求?

我想我在这里错过了一些简单的东西。

对System.Web.HttpContext.Current的混淆

每个请求都由一个线程提供服务。换句话说,一个线程一次只能为一个请求提供服务。

现在HttpContext.CurrentCallContext.HostContext 支持,它实际上是一个线程静态属性(属性 getter/setter 基于每个线程工作(。

获取或设置与当前线程关联的主机上下文。

这就是HttpContext.Current设法始终为每个请求返回正确上下文的方式,即使并行处理多个请求 - 当前线程与 HttpContext 相关联,而 HttpContext 又与特定请求相关联。

它是静态的,但在当前请求上。

"获取或设置当前 HTTP 请求的 HttpContext 对象。

请参阅: msdn- HttpContext.Current Property