Beispiel #1
0
        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;
            //}
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        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}");
            //}
        }