The code you sent is an exact copy of some of the code that we have here.
It has been working fine for 2 years now.
Each user access is its own session. Each request made to the server represents a new thread. Although there are two requests at the same time, HttpContext.Current is different for each of these requests.
Jean-francois
source share