public async Task SyncDanmuFilter() { try { var result = await playerAPI.GetDanmuFilterWords().Request(); if (!result.status) { Utils.ShowMessageToast(result.message); return; } var obj = result.GetJObject(); if (obj["code"].ToInt32() == 0) { var items = JsonConvert.DeserializeObject <List <DanmuFilterItem> >(obj["data"]["rule"].ToString()); { var words = items.Where(x => x.type == 0).Select(x => x.filter).ToList(); var ls = ShieldWords.Union(words); ShieldWords.Clear(); foreach (var item in ls) { ShieldWords.Add(item); } SettingHelper.SetValue(SettingHelper.VideoDanmaku.SHIELD_WORD, ShieldWords); } { var users = items.Where(x => x.type == 1).Select(x => x.filter).ToList(); var ls = ShieldRegulars.Union(users); ShieldRegulars.Clear(); foreach (var item in ls) { ShieldRegulars.Add(item); } SettingHelper.SetValue(SettingHelper.VideoDanmaku.SHIELD_REGULAR, ShieldRegulars); } { var users = items.Where(x => x.type == 2).Select(x => x.filter).ToList(); var ls = ShieldUsers.Union(users); ShieldUsers.Clear(); foreach (var item in ls) { ShieldUsers.Add(item); } SettingHelper.SetValue(SettingHelper.VideoDanmaku.SHIELD_USER, ShieldUsers); } } else { Utils.ShowMessageToast(obj["message"].ToString()); } } catch (Exception ex) { LogHelper.Log("读取弹幕屏蔽词失败", LogType.ERROR, ex); } }
/// <summary> /// 获取用户登录信息 /// </summary> /// <returns></returns> private LoginUserModel UserLogin(ActionExecutingContext filterContext) { var request = filterContext.HttpContext.Request; //获取登录信息 LoginUserModel loginUserModel = LoginHelper.GetCurrentUserInfo(); var userid = "" + Session[LoginHelper.SessionKey]; int id = 0; if (!string.IsNullOrEmpty(userid)) { int.TryParse(userid.ToString(), out id); } if (loginUserModel == null) { var loginKey = LoginHelper.GetCurrentCacheKey(); if (id > 0) { //从本地缓存中获取登录对象 loginUserModel = (LoginUserModel)HttpRuntime.Cache.Get(loginKey); } if (loginUserModel == null) { if (id == 0 || ShieldUsers.Contains(userid)) { filterContext.Result = Redirect(GetLoginUrl(filterContext.HttpContext.Request)); } else { loginUserModel = adminUserBLL.GetLoginUserByUserID(id); RedisCacheHelper.Add <LoginUserModel>(loginKey, loginUserModel, DateTime.Now.AddMinutes(Session.Timeout)); } } } else { /* 测试阶段暂时注销,待菜单稳定后打开 * * if (filterContext.HttpContext.Request.Url.AbsolutePath.Equals("/")) * return loginUserModel; * int urlHashCode = filterContext.HttpContext.Request.Url.AbsolutePath.GetHashCode(); * bool usable = false; * //安全验证,判断请求的URL是否属于用户权限菜单 * foreach (var item in loginUserModel.MenuList) * { * if (item.children != null) * { * foreach (var childMenu in item.children) * { * if (urlHashCode == childMenu.ModuleURL.GetHashCode()) * { * usable = true; * break; * } * } * * if (usable) * break; * } * } * * if (!usable) * { * filterContext.RequestContext.HttpContext.Response.Redirect("http://Admin.SFO2O.com/", true); * } */ } return(loginUserModel); }