Ejemplo n.º 1
0
        //更新交互
        public IRequestResult Keep()
        {
            using (dpz.Mvc.Sessions.RedisSessionManager redis = new dpz.Mvc.Sessions.RedisSessionManager(site.Config.Redis.ConnectionString, false)) {
                redis.CreateSessionId();

                if (!redis.CheckSessionId(JRequest.Header.SessionID))
                {
                    //await Send(null, 0, $"交互标识不存在或已过期");
                    return(Fail("交互标识不存在或已过期"));
                }
                //await Send(null, 1, "", 0, "", redis.SessionID);
            }
            return(Success());
        }
Ejemplo n.º 2
0
        //获取GUID
        public IRequestResult Create()
        {
            using (dpz.Mvc.Sessions.RedisSessionManager redis = new dpz.Mvc.Sessions.RedisSessionManager(site.Config.Redis.ConnectionString, false)) {
                redis.CreateSessionId();

                string time = "" + dpz.Time.Now.ToTimeStamp();
                string key  = Guid.NewGuid().ToString().Replace("-", "");

                redis["Session_Time"] = time;
                redis["Session_Key"]  = key;

                JData.Sid  = redis.SessionID;
                JData.Key  = key;
                JData.Time = time;
            }
            return(Success());
        }
Ejemplo n.º 3
0
        public string CreateNew()
        {
            dpz.Jsons.Jttp res = new dpz.Jsons.Jttp();

            res.Header.Time = "" + dpz.Time.Now.ToTimeStamp();

            using (dpz.Mvc.Sessions.RedisSessionManager redis = new dpz.Mvc.Sessions.RedisSessionManager(site.Config.Redis.ConnectionString, false)) {
                redis.CreateSessionId();

                string time = "" + dpz.Time.Now.ToTimeStamp();

                redis["Session_Time"] = time;

                res.Data.Sid  = redis.SessionID;
                res.Data.Time = time;
            }

            res.Header.Status = "1";
            return(res.ToJson());

            //return obj.ToJson();
        }
Ejemplo n.º 4
0
        private string GetInfoBySid(string sid, string randString, string md5)
        {
            dpz.Jsons.Jttp res = new dpz.Jsons.Jttp();

            if (sid.IsNone())
            {
                res.Header.Status = "0";
                res.Message       = "交互标识无效";
                return(res.ToJson());
            }

            if (randString.IsNone())
            {
                res.Header.Status = "0";
                res.Message       = "缺少身份授权所需的随机字符串";
                return(res.ToJson());
            }

            if (randString.Length < 32)
            {
                res.Header.Status = "0";
                res.Message       = "为保证通讯安全,身份授权所需的随机字符串最少长度为32位";
                return(res.ToJson());
            }

            if (md5.IsNone())
            {
                res.Header.Status = "0";
                res.Message       = "缺少身份授权所需的验证码";
                return(res.ToJson());
            }

            using (dpz.Mvc.Sessions.RedisSessionManager redis = new dpz.Mvc.Sessions.RedisSessionManager(site.Config.Redis.ConnectionString, false, sid)) {
                //redis.CreateSessionId();
                if (!redis.CheckSessionId(sid, false))
                {
                    res.Header.Status = "0";
                    res.Message       = "交互标识无效";
                    return(res.ToJson());
                }

                long   uid        = redis["User_ID"].ToLong();
                string sessionKey = redis["Session_Key"];

                if (uid <= 0)
                {
                    res.Header.Status = "0";
                    res.Message       = "用户尚未登录或登陆状态失效";
                    return(res.ToJson());
                }

                using (dpz.Gdbc.Connection dbc = new dpz.Gdbc.Connection(site.Config.Database.Aos)) {
                    var row = dbc.GetGdmlOne($"@{{$[AosUsers]&[ID=='{uid}']}}");
                    if (row.IsEmpty)
                    {
                        res.Header.Status = "0";
                        res.Message       = "未找到用户信息";
                        return(res.ToJson());
                    }

                    string name    = row["Name"];
                    string userMD5 = ("name=" + name + "&str=" + randString + "&key=" + sessionKey).GetMD5();
                    if (md5 != userMD5)
                    {
                        res.Header.Status = "0";
                        res.Message       = "MD5验证失败";
                        return(res.ToJson());
                    }

                    foreach (var item in row)
                    {
                        if (item.Key != "Pwd")
                        {
                            res.Data[item.Key] = item.Value;
                        }
                    }
                }

                res.Header.Status = "1";
                return(res.ToJson());
            }
        }