System.Web.HttpContext.Current上的混淆

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

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

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

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

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

这就是HttpContext.Current总是为每个请求设置正确的上下文,即使多个请求并行处理 – 当前线程与HttpContext相关联,而HttpContext又与特定请求相关联。

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

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

请参阅: msdn- HttpContext.Current属性