public LogDetail CreateLogDetail() { IHttpContextRequest httpRequest = _httpRequest.HttpRequestAccessor(); if (httpRequest == null) { return(new LogDetail { CanExtract = false }); } return(new LogDetail { CanExtract = true, PageRest = _httpRequest.ExtractUrl(Uripart.Path | Uripart.Query, httpRequest), PageRest2 = _httpRequest.ExtractUrl(Uripart.Path | Uripart.Query, httpRequest), Page = _httpRequest.ExtractUrl(Uripart.Full, httpRequest), Verb = _httpRequest.GetMethod(httpRequest), Uri = _httpRequest.ExtractUrl(Uripart.Path, httpRequest), ServerName = _httpRequest.ExtractUrl(Uripart.Host, httpRequest), HostAddress = _httpRequest.HostAddress(httpRequest), UserAgent = _httpRequest.GetHeader("User-Agent", httpRequest), CorrelationId = _httpRequest.GetHeader(LogMeta._correlationId, httpRequest), Payload = _httpRequest.TryGetBodyContent(httpRequest), Warning = _httpRequest == null ? "HttpContext.Current is null" : null }); }
public string ExtractUrl(Uripart uriPart, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; if (request == null) { return(null); } var urlBuilder = new StringBuilder(); if ((uriPart & Uripart.Scheme) == Uripart.Scheme && !String.IsNullOrWhiteSpace(request.Url.Scheme)) { urlBuilder.Append(request.Url.Scheme + "://"); } if ((uriPart & Uripart.Host) == Uripart.Host) { urlBuilder.Append(request.Url.DnsSafeHost); } if ((uriPart & Uripart.Port) == Uripart.Port && request.Url.Port > 0) { urlBuilder.Append(":" + request.Url.Port); } if ((uriPart & Uripart.Path) == Uripart.Path) { urlBuilder.Append(request.Url.LocalPath); } if ((uriPart & Uripart.Query) == Uripart.Query) { urlBuilder.Append(request.Url.Query.ClearQueryStringPassword()); } return(urlBuilder.ToString()); }
public string ExtractUrl(Uripart uriPart, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestCore).HttpRequest; if (request == null) { return(null); } var urlBuilder = new StringBuilder(); if ((uriPart & Uripart.Scheme) == Uripart.Scheme && !String.IsNullOrWhiteSpace(request.Scheme)) { urlBuilder.Append(request.Scheme + "://"); } if ((uriPart & Uripart.Host) == Uripart.Host) { urlBuilder.Append(request.Host.Host); } if ((uriPart & Uripart.Port) == Uripart.Port && request.Host.Port > 0) { urlBuilder.Append(":" + request.Host.Port); } if ((uriPart & Uripart.Path) == Uripart.Path) { urlBuilder.Append(request.PathBase.ToUriComponent()); urlBuilder.Append(request.Path.ToUriComponent()); } if ((uriPart & Uripart.Query) == Uripart.Query) { urlBuilder.Append(request.QueryString.Value.ClearQueryStringPassword()); } return(urlBuilder.ToString()); }
public bool ContainsHeader(string header, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestCore).HttpRequest; if (request == null) { return(false); } return(request.Headers.ContainsKey(header)); }
public string HostAddress(IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; string ip = null; if (request.Headers.Get(LogMeta._luccaForwardedHeader) != null) { ip = request.Headers[LogMeta._forwardedHeader]; } if (string.IsNullOrEmpty(ip)) { ip = request?.UserHostAddress; } return(ip); }
public string HostAddress(IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestCore).HttpRequest; string ip = null; if (request.Headers.ContainsKey(LogMeta._luccaForwardedHeader)) { ip = request.Headers[LogMeta._forwardedHeader]; } if (string.IsNullOrEmpty(ip)) { ip = request?.HttpContext?.Connection?.RemoteIpAddress?.ToString(); } return(ip); }
public string TryGetBodyContent(IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; string documentContents = null; try { if (request == null || request.InputStream.Length == 0) { return(null); } using (var stream = new MemoryStream()) { request.InputStream.Seek(0, SeekOrigin.Begin); request.InputStream.CopyTo(stream); documentContents = Encoding.UTF8.GetString(stream.ToArray()); } } catch (Exception) { // discard exception } return(documentContents); }
public string TryGetBodyContent(IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestCore).HttpRequest; try { if (request == null || !request.Body.CanRead || !request.Body.CanSeek || request.Body.Length == 0) { return(null); } using (var stream = new MemoryStream()) { request.Body.Seek(0, SeekOrigin.Begin); request.Body.CopyTo(stream); return(Encoding.UTF8.GetString(stream.ToArray())); } } catch (Exception) { // discard exception return(null); } }
public string GetHeader(string header, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; return(request?.Headers.Get(header)); }
public bool ContainsHeader(string header, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; return(request?.Headers.Get(header) != null); }
public string GetMethod(IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestLegacy).HttpRequest; return(request?.HttpMethod); }
public string GetHeader(string header, IHttpContextRequest httpRequest) { var request = (httpRequest as HttpContextRequestCore).HttpRequest; return(request?.Headers[header]); }