Setting current culture with threads in ASP.NET MVC
- by mare
Here's an example of SetCulture attribute which inside does something like this:
    public void OnActionExecuting(ActionExecutingContext
        filterContext)
    {
        string cultureCode = SetCurrentLanguage(filterContext);
        if (string.IsNullOrEmpty(cultureCode)) return;
        HttpContext.Current.Response.Cookies.Add(
            new HttpCookie("Culture", cultureCode)
            {
                HttpOnly = true,
                Expires = DateTime.Now.AddYears(100)
            }
        );
        filterContext.HttpContext.Session["Culture"] = cultureCode;
        CultureInfo culture = new CultureInfo(cultureCode);
        System.Threading.Thread.CurrentThread.CurrentCulture =
            culture;
        System.Threading.Thread.CurrentThread.CurrentUICulture =
            culture;
    }
I was wondering how does this affect a site with multiple users logged on and each one setting their own culture? What is the scope of a thread here with regards to the IIS worker process (w3wp) that the site is running in?