示例#1
0
        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);
            }
        }
示例#2
0
        /// <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);
        }