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, }); }
public Respbase <List <UserinfoDto> > GetUserInfo(ReqUserInfo req) { FriFacade facade = new FriFacade(); List <UserinfoDto> userinfo = facade.GetUserInfo(req); return(new Respbase <List <UserinfoDto> > { Data = userinfo }); }
/// <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); }
/// <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); } }
/// <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); } }
/// <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); } }