コード例 #1
0
 public async Task SaveAsync(RequestProfileModel requestProfileModel)
 {
     using (var context = ContextProvider())
     {
         if (requestProfileModel.Ipaddress != "::1")
         {
             context.Add(Mapper.Map <RequestProfile>(requestProfileModel));
             await context.SaveChangesAsync();
         }
     }
 }
コード例 #2
0
            public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
            {
                var model   = new RequestProfileModel();
                var headers = context.HttpContext.Request.Headers;

                //if (headers.ContainsKey("Host") && headers["Host"].ToString().Contains("localhost"))
                //{
                //    await next();
                //    return;
                //}

                if (headers.ContainsKey("User-Agent"))
                {
                    model.AgentString = headers["User-Agent"].ToString();
                }

                model.Ipaddress      = context.HttpContext.Connection.RemoteIpAddress.ToString();
                model.LastAccessTime = DateTime.UtcNow;
                model.Headers        = JsonConvert.SerializeObject(context.HttpContext.Request.Headers, Formatting.Indented);
                model.Route          = $"{context.HttpContext.Request.Method}:  {context.HttpContext.Request.Path}";
                if (context.ActionArguments != null)
                {
                    var body = $" Body: {JsonConvert.SerializeObject(context.ActionArguments, Formatting.Indented)}";
                    if (body.Length > 1000)
                    {
                        context.Result = new BadRequestResult();

                        return;
                    }
                    model.Route += body;
                }


                await _requestProfileService.SaveAsync(model);

                await next();
            }