예제 #1
0
        public async Task <IActionResult> Get()
        {
            var apiData = new ApiResultModel();
            var userId  = UserHttpInfo.GetValueByToken(Common.Utility.Models.Config.TokenInfoType.UserId);
            var user    = await sysUsersService.GetModelAsync(userId);//根据id获取用户信息

            var requestAuth = new RequestAuthModel()
            {
                Key    = user.user_account,
                Secret = user.user_pwd
            };
            //通过用户信息获取最新的token
            var responesToken = await new ToKenService().GetTokenAsync(requestAuth);

            if (responesToken.IsError)
            {
                apiData.Code = ErrorCodeType.ServerError;
                apiData.SetErrorCodeTypeMsg();
            }
            else
            {
                apiData.Result = responesToken;
            }
            return(Ok(apiData));
        }
예제 #2
0
        public async Task InvokeAsync(HttpContext context)
        {
            var httpRequest = context.Request;

            //过滤请求
            if (
                StaticConfig.AppSettings.HttpRequstRecordMiddleware.EnabledRequstRecord &&
                httpRequest.Path.Value.Contains("api"))
            {
                httpRequest.EnableBuffering();
                var originalBody = context.Response.Body; //原始Stream

                try
                {
                    var rlInfo = new HttpRequestLogInfoModel(LogInfoType.API)
                    {
                        Ip          = UserHttpInfo.GetIp(),
                        Url         = httpRequest.Path.ToString().TrimEnd('/').ToLower(),
                        Method      = httpRequest.Method,
                        ContentType = httpRequest.ContentType,
                        Headers     = GetHeaders(httpRequest)
                    };

                    // 存储请求数据
                    await RequestDataLog(context, rlInfo);

                    using (var ms = new MemoryStream())
                    {
                        context.Response.Body = ms;

                        await next(context);

                        // 存储响应数据
                        await ResponseDataLog(ms, rlInfo);

                        ms.Position = 0;                    //重置指针
                        await ms.CopyToAsync(originalBody); //将新的Stream给到原始Stream变量
                    }
                }
                catch (Exception ex)
                {
                    typeof(HttpRequstRecordMiddleware).Logger().LogError(ex);
                }
                finally
                {
                    context.Response.Body = originalBody; //将新的Stream给到原始响应
                }
            }
            else
            {
                await next(context);
            }
        }
예제 #3
0
        public async Task <IActionResult> Get([FromQuery] int oprator, [FromQuery] PagingModel paging, [FromQuery] SysRoleMenuAndRequestModel queryParameter)
        {
            var apiResult = new ApiResultModel(ErrorCodeType.Success);

            switch (paging.Oprator)
            {
            case 1:
            {
                //获取不分页数据集合
                var data = await sysRoleMenuAndService.GetModelsAsync(queryParameter);

                apiResult.Result = data;
                return(Ok(apiResult));
            }

            case 10:
            {
                //菜单导航
                var roleid = UserHttpInfo.GetValueByToken(TokenInfoType.RoleId);
                apiResult.Result = await sysRoleMenuAndService.GetLayoutMenusAsync(roleid);

                return(Ok(apiResult));
            }

            case 11:
            {
                //权限 tree
                apiResult.Result = await sysRoleMenuAndService.GetMenuTreeAsync(queryParameter);

                return(Ok(apiResult));
            }

            default:
            {
                var data = await sysRoleMenuAndService.GetModelsAsync(paging, queryParameter);

                apiResult.Result = new
                {
                    paging,
                    data
                };
                return(Ok(apiResult));
            }
            }
        }
예제 #4
0
        public async Task <IActionResult> Get([FromQuery] int oprator, [FromQuery] PagingModel paging, [FromQuery] SysUsersRequestModel queryParameter)
        {
            var apiResult = new ApiResultModel(ErrorCodeType.Success);

            switch (paging.Oprator)
            {
            case 1:
            {
                //获取不分页数据集合
                apiResult.Result = await sysUsersService.GetModelsAsync(queryParameter);

                return(Ok(apiResult));
            }

            case 10:
            {
                var userid = UserHttpInfo.GetValueByToken(TokenInfoType.UserId);
                var data   = await sysUsersService.GetModelAsync(userid);

                data.user_pwd    = string.Empty;
                apiResult.Result = data;
                return(Ok(apiResult));
            }

            default:
            {
                var data = await sysUsersService.GetModelsAsync(paging, queryParameter);

                apiResult.Result = new
                {
                    paging,
                    data
                };
                return(Ok(apiResult));
            }
            }
        }