public async Task SaveAsync(RequestProfileModel requestProfileModel) { using (var context = ContextProvider()) { if (requestProfileModel.Ipaddress != "::1") { context.Add(Mapper.Map <RequestProfile>(requestProfileModel)); await context.SaveChangesAsync(); } } }
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(); }