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); }
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); }