Example #1
0
        public override async Task <UserInfo> GetUserInfo(ReqUserInfo req, ServerCallContext context)
        {
            if (req == null)
            {
                throw new ArgumentNullException(nameof(req));
            }
            var name    = req.UserName;
            var worldId = req.UserWorldId;
            var user    = _userManager.GetUser(name, worldId);

            if (user == null)
            {
                return(new UserInfo
                {
                    Success = false,
                    Message = ResponseMessages.UserNotFound,
                    UserExternalName = string.Empty,
                    UserId = 0,
                });
            }
            var info = await user.GetUserInfo();

            return(new UserInfo
            {
                Success = true,
                Message = string.Empty,
                UserExternalName = info.Username + "#" + info.Discriminator,
                UserId = info.Id,
            });
        }
Example #2
0
        public Respbase <List <UserinfoDto> > GetUserInfo(ReqUserInfo req)
        {
            FriFacade          facade   = new FriFacade();
            List <UserinfoDto> userinfo = facade.GetUserInfo(req);

            return(new Respbase <List <UserinfoDto> > {
                Data = userinfo
            });
        }
Example #3
0
        /// <summary>
        /// 获取信友圈用户基本信息
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public List <UserinfoDto> GetUserInfo(ReqUserInfo req)
        {
            int[] Snodeids;
            if (string.IsNullOrEmpty(req.Snodeids))
            {
                AddUserInfo(req.Nodeid);
                Snodeids = new int[] { req.Nodeid };
            }
            else
            {
                Snodeids = Array.ConvertAll(req.Snodeids.Split(new char[] { ',', ';', '|' }, StringSplitOptions.RemoveEmptyEntries), s => Convert.ToInt32(s));
            }
            var query = from user in db.TpxinUserinfoSet
                        join reginfo in db.TnetReginfoSet.Select(a => new { a.Nodename, a.Nodeid }) on user.Nodeid equals reginfo.Nodeid
                        join chatuser in db.TchatFriendNickSet.Where(a => a.Mynodeid == req.Nodeid).Select(a => new { a.Nickname, a.Friendnodeid }) on user.Nodeid equals chatuser.Friendnodeid into chatuser_join
                        from chatuser in chatuser_join.DefaultIfEmpty()
                        join photo in db.TnetUserphotoSet.Select(a => new { a.Appphoto, a.Nodeid }) on user.Nodeid equals photo.Nodeid into photo_join
                        from photo in photo_join.DefaultIfEmpty()
                        join cu in db.TchatUserSet.Select(p => new { p.Personalsign, p.Nodeid }) on user.Nodeid equals cu.Nodeid into cu_join
                        from cu in cu_join.DefaultIfEmpty()
                        where Snodeids.Contains(user.Nodeid)
                        select new UserinfoDto
            {
                Nickname     = chatuser.Nickname,
                Nodeid       = user.Nodeid,
                Nodename     = reginfo.Nodename,
                Appphoto     = photo.Appphoto,
                Backpic      = user.Backpic,
                Createtime   = user.Createtime,
                Down         = user.Down,
                Infoid       = user.Infoid,
                P            = user.P,
                Remarks      = user.Remarks,
                Up           = user.Up,
                V            = user.V,
                Personalsign = cu.Personalsign
            };
            var list = query.ToList();
            var vp   = new VPHelper();

            for (int i = 0; i < list.Count; i++)
            {
                var vpDian = vp.GetTpxinUserinfo(list[i].Nodeid);
                list[i].V = vpDian.VDianBalance;
                list[i].P = vpDian.PDianBalance;
            }
            return(list);
        }
Example #4
0
        /// <summary>
        /// http get invoke
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private async Task GetInvoke(HttpContext context)
        {
            var useHeader = context.Request.Headers.ContainsKey("Authorization");

            if (useHeader)
            {
            }
            var pairs = context.Request.Query;

            if (pairs.ContainsKeys("timestamp nonce signature secret".Split(' ')))
            {
                if (pairs.ContainsKey("appid"))
                {
                    var requestInfo = new ReqAppInfo
                    {
                        timestamp = pairs["timestamp"].ToString(),
                        nonce     = pairs["nonce"].ToString(),
                        sinature  = pairs["signature"].ToString(),
                        appid     = pairs["appid"].ToString(),
                        secret    = pairs["secret"].ToString(),
                    };
                    await CheckApp(context, requestInfo);
                }
                else if (pairs.ContainsKey("userid"))
                {
                    var requestInfo = new ReqUserInfo
                    {
                        timestamp = pairs["timestamp"].ToString(),
                        nonce     = pairs["nonce"].ToString(),
                        sinature  = pairs["signature"].ToString(),
                        userid    = pairs["userid"].ToString(),
                        secret    = pairs["secret"].ToString(),
                    };
                    await CheckUser(context, requestInfo);
                }
                else
                {
                    await ReturnNoAuthorized(context);
                }
            }
            else
            {
                await ReturnNoAuthorized(context);
            }
        }
Example #5
0
        /// <summary>
        /// the main check method - Sinature_HMACMD5
        /// </summary>
        /// <param name="context"></param>
        /// <param name="req"></param>
        /// <returns></returns>
        private async Task CheckUser(HttpContext context, ReqUserInfo req)
        {
            string computeSinature = Req.Sinature_HMACMD5(req.userid, req.timestamp, req.nonce, options.SecretKey);

            if (computeSinature.Equals(req.sinature) && long.TryParse(req.timestamp, out long tmpTimestamp))
            {
                if (CheckExpiredTime(tmpTimestamp, options.ExpiresIn))
                {
                    await ReturnTimeOut(context);
                }
                else
                {
                    await CheckUser(context, req.userid, req.secret);
                }
            }
            else
            {
                await ReturnNoAuthorized(context);
            }
        }
Example #6
0
        /// <summary>
        /// http post invoke
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        private async Task PostInvoke(HttpContext context)
        {
            var pairs = context.Request.Form;

            if (context.Request.HasFormContentType &&
                pairs.ContainsKeys("timestamp nonce signature secret".Split(' ')))
            {
                if (pairs.ContainsKey("appid"))
                {
                    var requestInfo = new ReqAppInfo
                    {
                        timestamp = pairs["timestamp"].ToString(),
                        nonce     = pairs["nonce"].ToString(),
                        sinature  = pairs["signature"].ToString(),
                        appid     = pairs["appid"].ToString(),
                        secret    = pairs["secret"].ToString(),
                    };
                    await CheckApp(context, requestInfo);
                }
                else if (pairs.ContainsKey("userid"))
                {
                    var requestInfo = new ReqUserInfo
                    {
                        timestamp = pairs["timestamp"].ToString(),
                        nonce     = pairs["nonce"].ToString(),
                        sinature  = pairs["signature"].ToString(),
                        userid    = pairs["userid"].ToString(),
                        secret    = pairs["secret"].ToString(),
                    };
                    await CheckUser(context, requestInfo);
                }
                else
                {
                    await ReturnNoAuthorized(context);
                }
            }
            else
            {
                await ReturnNoAuthorized(context);
            }
        }