4
我正在考慮使用HttpModule進行本地化(基於this article中的示例) - 但我很好奇,這是否安全?使用HttpModule進行本地化是否安全?
下面的代碼,以供參考:
public class CookieLocalizationModule : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
// eat the cookie (if any) and set the culture
if (HttpContext.Current.Request.Cookies["lang"] != null)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies["lang"];
string lang = cookie.Value;
var culture = new System.Globalization.CultureInfo(lang);
// is it safe to do this in all situations?
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
}
}
}
我的印象是,多個線程可能服務的Web請求下。將當前/當前UI文件設置爲這樣的HttpModule是否安全並且在Web請求的生命週期中是否遵守這些文件是安全的,無論涉及多少個線程服務?
更新:
我已經在生產中使用這種方法了近一年了,所以我肯定能證明,這是完全可以放心使用一個HttpModule本地化。
您能否引用「文化(和其他事物)被複制到另一個線索」的來源? – DanP 2011-02-10 14:10:29