Esempio n. 1
0
        private void GetBrowserVersions(ActionExecutingContext filterContext)
        {
            HttpBrowserCapabilities hbc       = HttpContext.Current.Request.Browser;
            string             browserName    = hbc.Browser.ToString().ToLower(); //获取浏览器类型
            string             browserVersion = hbc.Version.ToString();           //获取版本号
            BrowserVersionType re             = BrowserVersionType.Permit;

            if (!string.IsNullOrEmpty(ConfigurationHelper.GetAppSetting("DefaulBrowserIsAllow")))
            {
                if (!Convert.ToBoolean(ConfigurationHelper.GetAppSetting("DefaulBrowserIsAllow")))
                {
                    re = BrowserVersionType.Forbid;
                }
            }
            object obj = ConfigurationManager.GetSection("BrowserVersionSection");

            BrowserVersionSection mySection4 = (BrowserVersionSection)ConfigurationManager.GetSection("BrowserVersionSection");

            List <MyKeyValueSetting> ml    = new List <MyKeyValueSetting>();
            List <BrowserVersion>    blist = new List <BrowserVersion>();

            if (mySection4 != null && mySection4.KeyValues.Count > 0)
            {
                ml = (from kv in mySection4.KeyValues.Cast <MyKeyValueSetting>()
                      // let s = string.Format("{0}={1}", kv.Key, kv.Value)
                      select kv).Where(c => c.BrowserName.ToLower() == browserName).ToList();
                foreach (var item in ml)
                {
                    BrowserVersion bv = new BrowserVersion();
                    bv.BrowserName      = item.BrowserName;
                    bv.Version          = item.Version;
                    bv.IsAllow          = Convert.ToBoolean(item.IsAllow);
                    bv.SpecifiedVersion = Convert.ToBoolean(item.specified);
                    blist.Add(bv);
                }
            }
            BrowserVersionType type = BL.Permission.ComparativeVersion(browserVersion, re, blist);

            if (type == BrowserVersionType.Forbid)
            {
                filterContext.Result = new ContentResult {
                    Content = MVC2015.Utility.Resource.ResourceHelper.GetValue("BrowserCanNotUse")
                };
            }

            CommonHelper.SetCookie("BrowserVersionType", ((int)type).ToString(), null, false);
        }
Esempio n. 2
0
        public static BrowserVersionType ComparativeVersion(string versions, BrowserVersionType reDefault, List <BrowserVersion> result)
        {
            Version            currentVer = new Version(versions);
            Version            itemVer    = null;
            BrowserVersionType re         = BrowserVersionType.Cue;

            //禁止
            foreach (var item in result)
            {
                itemVer = new Version(item.Version);
                if (item.IsAllow == false)
                {
                    if (item.SpecifiedVersion == true)
                    {
                        if (currentVer == itemVer)
                        {
                            re = BrowserVersionType.Forbid;
                            break;
                        }
                    }
                    else
                    {
                        if (currentVer <= itemVer)
                        {
                            re = BrowserVersionType.Forbid;
                            break;
                        }
                    }
                }
            }
            //許可
            if (re == BrowserVersionType.Cue)
            {
                foreach (var item in result)
                {
                    itemVer = new Version(item.Version);
                    if (item.IsAllow == false)
                    {
                        if (item.SpecifiedVersion == true)
                        {
                            if (currentVer == itemVer)
                            {
                                re = BrowserVersionType.Permit;
                            }
                        }
                        else
                        {
                            if (currentVer >= itemVer)
                            {
                                re = BrowserVersionType.Permit;
                            }
                        }
                    }
                }
            }
            if (re == BrowserVersionType.Cue)//未控制浏览器项取默认设置
            {
                re = reDefault;
            }
            return(re);
        }