public async Task <ResponseMessage> SaveUserExtensions(ClaimsUserInfo ClaimsUserInfo, [FromBody] List <UserExtensionsRequest> request)
        {
            ResponseMessage r = new ResponseMessage();

            try
            {
                if (request == null)
                {
                    r.Code    = "1";
                    r.Message = "没有传入用户参数";
                }

                bool isOk = await userExtensionsManager.SaveUserExtensions(ClaimsUserInfo, request, Request.HttpContext.RequestAborted);

                if (!isOk)
                {
                    r.Code    = "1";
                    r.Message = "无法保存用户参数";
                }
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("保存用户参数失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
        public async Task <ResponseMessage <List <OpenIDResponse> > > GetOpenIDs(ClaimsUserInfo ClaimsUserInfo, [FromBody] List <string> userIds)
        {
            ResponseMessage <List <OpenIDResponse> > r = new ResponseMessage <List <OpenIDResponse> >();

            if (ClaimsUserInfo.grant_type != "client_credentials")
            {
                r.Code    = "401";
                r.Message = "仅允许内部应用访问";
                return(r);
            }

            try
            {
                var q = from u in _context.Users.AsNoTracking()
                        select new OpenIDResponse()
                {
                    UserID = u.Id,
                    OpenID = u.WXOpenId
                };
                if (userIds != null && userIds.Count > 0)
                {
                    q = q.Where(u => userIds.Contains(u.UserID));
                }

                r.Extension = await q.ToListAsync();
            }
            catch (Exception e)
            {
                r.Code    = "1";
                r.Message = e.Message;
            }
            return(r);
        }
        public async Task <ResponseMessage> DeleteUserExtensions(ClaimsUserInfo ClaimsUserInfo, [FromBody] List <string> parNames)
        {
            ResponseMessage r = new ResponseMessage();

            try
            {
                if (parNames == null)
                {
                    r.Code    = "1";
                    r.Message = "没有传入用户参数";
                }

                bool isOk = await userExtensionsManager.DeleteUserExtensions(ClaimsUserInfo, parNames, Request.HttpContext.RequestAborted);

                if (!isOk)
                {
                    r.Code    = "1";
                    r.Message = "无法删除用户参数";
                }
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("删除用户参数失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
        public async Task <ResponseMessage <List <UserExtensionsResponse> > > Search(ClaimsUserInfo ClaimsUserInfo, [FromQuery] string parName, [FromBody] List <string> userIds)
        {
            ResponseMessage <List <UserExtensionsResponse> > r = new ResponseMessage <List <UserExtensionsResponse> >();

            try
            {
                if (ClaimsUserInfo.grant_type != "client_credentials")
                {
                    r.Code    = "401";
                    r.Message = "仅允许内部应用访问";
                    return(r);
                }

                var response = await userExtensionsManager.GetUserExtensions(ClaimsUserInfo, parName, userIds, HttpContext.RequestAborted);

                r.Extension = response;
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("获取用户参数失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
        public async Task <bool> SaveUserExtensions(ClaimsUserInfo ClaimsUserInfo, List <UserExtensionsRequest> request, CancellationToken cancellationToken)
        {
            List <UserExtensions> list = mapper.Map <List <UserExtensions> >(request);

            if (list != null)
            {
                list.ForEach(p => p.UserId = ClaimsUserInfo.Id);
                return(await store.SaveUserParamaters(list, cancellationToken));
            }
            return(false);
        }
        public async Task <List <UserExtensionsResponse> > GetUserExtensions(ClaimsUserInfo ClaimsUserInfo, string parNames, List <string> userIds, CancellationToken cancellationToken)
        {
            var list = await store.GetUserParameters(userIds, parNames, cancellationToken);

            if (list != null && list.Count > 0)
            {
                return(mapper.Map <List <UserExtensionsResponse> >(list));
            }


            return(new List <UserExtensionsResponse>());
        }
Esempio n. 7
0
        public IHttpActionResult GetMyInfo()
        {
            var response = new ClaimsUserInfo();

            // Get the Claims of the current user.
            if (User is ClaimsPrincipal claimsPrincipal)
            {
                response.Sid = claimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value;
                //response.Sid = claimsPrincipal.FindFirst(ClaimTypes.GivenName).Value;
                response.Role = claimsPrincipal.FindFirst(ClaimTypes.Role).Value;
            }

            return(Ok(response));
        }
        public async Task <bool> DeleteUserExtensions(ClaimsUserInfo ClaimsUserInfo, List <string> parNames, CancellationToken cancellationToken)
        {
            List <UserExtensions> extensions = new List <UserExtensions>();

            if (parNames != null)
            {
                parNames.ForEach(p =>
                {
                    extensions.Add(new UserExtensions()
                    {
                        UserId  = ClaimsUserInfo.Id,
                        ParName = p
                    });
                });
            }
            return(await store.DeleteUserParamaters(extensions, cancellationToken));
        }
Esempio n. 9
0
        public async Task <ResponseMessage <BDFaceResponseBase> > FaceRegister(ClaimsUserInfo ClaimsUserInfo, [FromBody] BDFaceRegisterRequest request, [FromQuery] bool isFirst = false)
        {
            ResponseMessage <BDFaceResponseBase> r = new ResponseMessage <BDFaceResponseBase>();

            try
            {
                request.user_info = ClaimsUserInfo.Id;
                request.uid       = ClaimsUserInfo.UserName;
                r = await restClient.Post <ResponseMessage <BDFaceResponseBase> >("/baidu/face", request);

                if (r.IsSuccess())
                {
                    //设置参数
                    if (isFirst)
                    {
                        List <UserExtensionsRequest> pars = new List <UserExtensionsRequest>();
                        pars.Add(new UserExtensionsRequest()
                        {
                            ParName  = ENABLE_FACE_LOGIN,
                            ParValue = "1"
                        });
                        pars.Add(new UserExtensionsRequest()
                        {
                            ParName  = ENABLE_FACE_SOUND_TIP,
                            ParValue = "1"
                        });
                        pars.Add(new UserExtensionsRequest()
                        {
                            ParName  = FACE_REGISTERED,
                            ParValue = "1"
                        });
                        await userExtensionsManager.SaveUserExtensions(ClaimsUserInfo, pars, HttpContext.RequestAborted);
                    }
                }
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("注册用户人脸失败:\r\n{0}", e.ToString());
            }

            return(r);
        }
Esempio n. 10
0
        public async Task <ResponseMessage <BDFaceResponseBase> > FaceUpdate(ClaimsUserInfo ClaimsUserInfo, [FromBody] BDFaceRegisterRequest request)
        {
            ResponseMessage <BDFaceResponseBase> r = new ResponseMessage <BDFaceResponseBase>();

            try
            {
                request.user_info = ClaimsUserInfo.Id;
                request.uid       = ClaimsUserInfo.UserName;
                r = await restClient.Post <ResponseMessage <BDFaceResponseBase> >("/baidu/face", request, "PUT");
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("更新用户人脸失败:\r\n{0}", e.ToString());
            }

            return(r);
        }
Esempio n. 11
0
        public async Task <ResponseMessage <BDFaceVerifyResponse> > FaceVerify(ClaimsUserInfo ClaimsUserInfo, [FromBody] BDFaceVerifyRequest request)
        {
            ResponseMessage <BDFaceVerifyResponse> r = new ResponseMessage <BDFaceVerifyResponse>();

            try
            {
                request.uid    = ClaimsUserInfo.UserName;
                request.topNum = 1;

                r = await restClient.Post <ResponseMessage <BDFaceVerifyResponse> >("/baidu/face/verify", request);
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("更新用户人脸失败:\r\n{0}", e.ToString());
            }

            return(r);
        }
        public async Task <ResponseMessage <List <UserExtensionsResponse> > > GetUserExtensionsList2([FromRoute] string userId, [FromBody] List <string> parNames)
        {
            ResponseMessage <List <UserExtensionsResponse> > r = new ResponseMessage <List <UserExtensionsResponse> >();

            try
            {
                ClaimsUserInfo ui = new ClaimsUserInfo()
                {
                    Id = userId
                };

                var response = await userExtensionsManager.GetUserExtensions(ui, parNames, HttpContext.RequestAborted);

                r.Extension = response;
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("获取用户参数失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
Esempio n. 13
0
        public async Task <ResponseMessage <BDFaceResponseBase> > SwitchFaceLogin(ClaimsUserInfo ClaimsUserInfo, [FromQuery] bool enable)
        {
            ResponseMessage <BDFaceResponseBase> r = new ResponseMessage <BDFaceResponseBase>();

            try
            {
                List <UserExtensionsRequest> pars = new List <UserExtensionsRequest>();
                pars.Add(new UserExtensionsRequest()
                {
                    ParName  = ENABLE_FACE_LOGIN,
                    ParValue = enable ? "1" : "0"
                });

                await userExtensionsManager.SaveUserExtensions(ClaimsUserInfo, pars, HttpContext.RequestAborted);
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("开启用户刷脸登录失败:\r\n{0}", e.ToString());
            }

            return(r);
        }
        public async Task <ResponseMessage <UserExtensionsResponse> > GetUserExtensions(ClaimsUserInfo ClaimsUserInfo, string parName)
        {
            ResponseMessage <UserExtensionsResponse> r = new ResponseMessage <UserExtensionsResponse>();

            try
            {
                if (String.IsNullOrEmpty(parName))
                {
                    r.Code    = "1";
                    r.Message = "没有传入用户参数";
                }

                var response = await userExtensionsManager.GetUserExtensions(ClaimsUserInfo, new List <string>() { parName }, HttpContext.RequestAborted);

                r.Extension = response.FirstOrDefault();
            }
            catch (Exception e)
            {
                r.Code    = "500";
                r.Message = e.Message;
                Logger.Error("获取用户参数失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
Esempio n. 15
0
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            if (context?.HttpContext?.User == null)
            {
                context.Result = new ContentResult()
                {
                    Content    = "用户未登录",
                    StatusCode = 403
                };
                return;
            }
            //直接从令牌获取用户信息
            var            identity  = context.HttpContext.User;
            ClaimsUserInfo user      = null;
            string         grantType = identity.FindFirst("grant_type")?.Value;

            if (grantType == "client_credentials")
            {
                user = new ClaimsUserInfo()
                {
                    Id             = identity.FindFirst("sub")?.Value,
                    OrganizationId = identity.FindFirst("org")?.Value,
                    UserName       = identity.FindFirst("name")?.Value,
                    grant_type     = grantType
                };
            }
            else
            {
                user = new ClaimsUserInfo()
                {
                    Id             = identity.FindFirst(ClaimTypes.NameIdentifier)?.Value,
                    OrganizationId = identity.FindFirst("org")?.Value,
                    UserName       = identity.FindFirst("name")?.Value
                };
            }

            if (user == null)
            {
                context.Result = new ContentResult()
                {
                    Content    = "当前用户无效",
                    StatusCode = 403,
                };
                return;
            }
            //if (!await _permissionExpansionManager.HavePermission(user.Id, PermissionItem))
            //{
            //    context.Result = new ContentResult()
            //    {
            //        Content = "没有权限进行该操作",
            //        StatusCode = 403
            //    };
            //    return;
            //}
            context.ActionArguments.Add("UserId", user.Id);

            if (context.ActionArguments.ContainsKey("ClaimsUserInfo"))
            {
                context.ActionArguments["ClaimsUserInfo"] = user;
            }


            await next();

            //  do something after the action executes; resultContext.Result will be set
        }