protected void Application_AuthenticateRequest(object sender, EventArgs e) { int timeZoneHour = 8; //CurrentCulture Version HttpCookie timeZoneHourCookie = System.Web.HttpContext.Current.Request.Cookies["timezoneHour"]; if (timeZoneHourCookie != null) { timeZoneHour = Convert.ToInt32(timeZoneHourCookie.Value); var culture = CustomCultureInfo.Create(Thread.CurrentThread.CurrentCulture.Name, timeZoneHour); culture.NumberFormat.CurrencySymbol = "R"; System.Web.HttpContext.Current.Items.Add("culture-begin", $"Global:{culture.UtcHours}:{DateTime.Now}"); Thread.CurrentThread.CurrentCulture = culture; //if (timeZoneHourCookie.Value == "2") // System.Threading.Thread.Sleep(10000); System.Web.HttpContext.Current.Items.Add("culture-end", $"Global:{culture.UtcHours}:{DateTime.Now}"); } //CustomPrincipal Version 20190209 參考此版使用在專案上 if (Request.IsAuthenticated) { FormsIdentity id = (FormsIdentity)User.Identity; Context.User = new CustomPrincipal(User.Identity, id.Ticket.UserData); } //else //{ // //兩者都要指定,CurrentPrincipal才有作用 // Thread.CurrentPrincipal = new CustomPrincipal(new GenericIdentity("kimxinfo-without-formidentity"), 0); // Context.User = Thread.CurrentPrincipal; //} }
static void CustomCultureMultiThreadRandowLab() { System.Console.WriteLine("CustomCultureMultiThreadRandowLab-Start"); Random rnd = new Random(); var tasks = new List <Task <int> >(); for (int ctr = 1; ctr <= 20; ctr++) { tasks.Add(Task.Factory.StartNew( () => { int s = 0; for (int n = 0; n <= 999; n++) { lock (rndLock) { s = rnd.Next(24); System.Threading.Thread.Sleep(1 * s); CustomCultureInfo.Create("en", s); } } return(CustomCultureInfo._dict.Count); })); } Task.WaitAll(tasks.ToArray()); System.Console.WriteLine(CustomCultureInfo._dict.Count); System.Console.WriteLine("CustomCultureMultiThreadRandowLab-End"); }
static void CustomCurrentCultureLab() { Thread.CurrentThread.CurrentCulture = CustomCultureInfo.Create(Thread.CurrentThread.CurrentCulture.Name, 0); System.Console.WriteLine($"UTC : {DateTimeExtensions.GetCustomCultureDateTime()}"); Thread.CurrentThread.CurrentCulture = CustomCultureInfo.Create(Thread.CurrentThread.CurrentCulture.Name, 2); System.Console.WriteLine($"South Africa : {DateTimeExtensions.GetCustomCultureDateTime()}"); Thread.CurrentThread.CurrentCulture = CustomCultureInfo.Create(Thread.CurrentThread.CurrentCulture.Name, 4); System.Console.WriteLine($"Dubai : {DateTimeExtensions.GetCustomCultureDateTime()}"); Thread.CurrentThread.CurrentCulture = CustomCultureInfo.Create(Thread.CurrentThread.CurrentCulture.Name, 8); System.Console.WriteLine($"Taiwan : {DateTimeExtensions.GetCustomCultureDateTime()}"); ShowCultureFormat(new CultureInfo("en")); ShowCultureFormat(new CultureInfo("en-US")); ShowCultureFormat(new CultureInfo("en-ZA")); ShowCultureFormat(new CultureInfo("ar-AE"));//Arabic (United Arab Emirates) (ar-AE) - 杜拜 //foreach (var item in CultureInfo.GetCultures(CultureTypes.SpecificCultures).Where(o => o.Name.StartsWith("ar-"))) //{ // System.Console.WriteLine($"{item.Name} : {item.DisplayName} : {item.EnglishName}"); //} }