示例#1
0
        /// <summary>
        /// 获取用户的游戏状态
        /// </summary>
        /// <param name="key">UserID</param>
        /// <returns></returns>
        public GameInfo GetGameData(string key)
        {
            var data = new GameInfo();

            try
            {
                //首先从服务端缓存获取
                data = CacheExts <GameInfo> .GetValue(key);

                if (data == null)
                {
                    //缓存不存在,则读取用户本地Cookie解析成游戏对象
                    var cookieStr = CookiesHelper.GetCookieValue(key);
                    var json      = EncryptAndDecrypt.Decrypt(cookieStr);
                    data = JsonConvert.DeserializeObject <GameInfo>(json);
                }
            }
            catch {}
            if (data == null)
            {
                //如果都没有,则初始化一个游戏对象
                data = new GameInfo();
                RefNum(ref data);
            }
            return(data);
        }
示例#2
0
        public ActionResult Login(string uid, string pwd)
        {
            //登陆信息
            var info = new LoginBLL().LoginIn(uid, pwd);

            //登陆前的游客游戏
            var ykdata = CacheExts <GameInfo> .GetValue(LoginInfoModel.ykCookie);

            if (ykdata == null)
            {
                ykdata = new GameInfo();
                new GameInfoBLL().RefNum(ref ykdata);
            }


            if (info != null)
            {
                var data = CacheExts <GameInfo> .GetValue(info.UserID);

                if (data == null || data.Score < ykdata.Score)
                {
                    //如果此用户不存在游戏记录,或用户的游戏分数低于游客状态下的得分,则用游客的游戏状态覆盖用户的游戏状态
                    CacheExts <GameInfo> .SetValue(info.UserID, ykdata, noSlidingExpiration : false);
                }
                return(Json(new { Code = 2000, Msg = "登陆成功" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(new { Code = 2001, Msg = "登陆失败" }, JsonRequestBehavior.AllowGet));
            }
        }
示例#3
0
        /// <summary>
        /// 保存游戏数据
        /// </summary>
        /// <param name="game"></param>
        public void SetGameData(string key, GameInfo game)
        {
            //IIS缓存
            CacheExts <GameInfo> .SetValue(key, game, noSlidingExpiration : false);

            //客户端持久化存储
            var json      = JsonConvert.SerializeObject(game);
            var cookieStr = EncryptAndDecrypt.Encrypt(json);

            CookiesHelper.AddCookie(key, cookieStr);
            CookiesHelper.SetCookie(key, DateTime.Now.AddMonths(1));
        }