public void ForwardedForHeaderContainsMultipleEntriesRenderFirstValue() { // Arrange var(renderer, httpContext) = CreateWithHttpContext(); #if !ASP_NET_CORE httpContext.Request.ServerVariables.Returns(new NameValueCollection { { "REMOTE_ADDR", "192.0.0.0" } }); httpContext.Request.Headers.Returns( new NameValueCollection { { ForwardedForHeader, "127.0.0.1, 192.168.1.1" } }); #else var headers = new HeaderDict(); headers.Add(ForwardedForHeader, new StringValues("127.0.0.1, 192.168.1.1")); httpContext.Request.Headers.Returns(callinfo => headers); #endif renderer.CheckForwardedForHeader = true; // Act string result = renderer.Render(new LogEventInfo()); // Assert Assert.Equal("127.0.0.1", result); }
public void ForwardedForHeaderContainsMultipleEntriesRenderFirstValue() { var httpContext = Substitute.For <HttpContextBase>(); #if !ASP_NET_CORE httpContext.Request.ServerVariables.Returns(new NameValueCollection { { "REMOTE_ADDR", "192.0.0.0" } }); httpContext.Request.Headers.Returns( new NameValueCollection { { ForwardedForHeader, "127.0.0.1, 192.168.1.1" } }); #else var headers = new HeaderDict(); headers.Add(ForwardedForHeader, new StringValues("127.0.0.1, 192.168.1.1")); httpContext.Request.Headers.Returns(callinfo => headers); #endif var renderer = new AspNetRequestIpLayoutRenderer { CheckForwardedForHeader = true }; renderer.HttpContextAccessor = new FakeHttpContextAccessor(httpContext); string result = renderer.Render(new LogEventInfo()); Assert.Equal("127.0.0.1", result); }
public string GetValue(string dataCode) { if (HeaderDict.ContainsKey(dataCode)) { return(HeaderDict[dataCode]); } return(string.Empty); }
public void SetHeader(string key, string value) { if (userHeader == null) { userHeader = new HeaderDict(); } userHeader[key] = value; }
public void SetValue(string dataCode, string value) { if (HeaderDict.ContainsKey(dataCode)) { HeaderDict[dataCode] = value; } else { HeaderDict.Add(dataCode, value); } }
public AsyncHttp(string url, HeaderDict headers, //Dictionary<HttpRequestHeader, string> headers, string postbodyText = null ) { _url = url; _webreq = WebRequest.Create(_url) as HttpWebRequest; foreach (var header in headers) { _webeq_SetHeader_ObeyRule(header.Key, header.Value); } _postbody_text = postbodyText; if (_postbody_text == "") { _postbody_text = null; } if (_postbody_text != null) { _postbody_bytes = Encoding.UTF8.GetBytes(_postbody_text); } // // Determine some HTTP request params automatically // // == Determine GET or POST == // if (_postbody_bytes == null) { _webreq.Method = WebRequestMethods.Http.Get; } else { _webreq.Method = WebRequestMethods.Http.Post; } // == Determine Content-Length == // if (_postbody_bytes != null) { _webreq.ContentLength = _postbody_bytes.Length; } }
public void ReferrerPresentRenderNonEmptyString() { var httpContext = Substitute.For <HttpContextBase>(); #if !NETSTANDARD_1plus httpContext.Request.UrlReferrer.Returns(new Uri("http://www.google.com/")); #else var headers = new HeaderDict(); headers.Add("Referer", new StringValues("http://www.google.com/")); httpContext.Request.Headers.Returns((callinfo) => headers); #endif var renderer = new AspNetRequestReferrerRenderer(); renderer.HttpContextAccessor = new FakeHttpContextAccessor(httpContext); string result = renderer.Render(new LogEventInfo()); Assert.Equal(result, "http://www.google.com/"); }
public void ReferrerPresentRenderNonEmptyString() { // Arrange var(renderer, httpContext) = CreateWithHttpContext(); #if !ASP_NET_CORE httpContext.Request.UrlReferrer.Returns(new Uri("http://www.google.com/")); #else var headers = new HeaderDict(); headers.Add("Referer", new StringValues("http://www.google.com/")); httpContext.Request.Headers.Returns(callinfo => headers); #endif // Act var result = renderer.Render(new LogEventInfo()); // Assert Assert.Equal("http://www.google.com/", result); }
public void NotNullUserAgentRendersEmptyString() { // Arrange var(renderer, httpContext) = CreateWithHttpContext(); #if !ASP_NET_CORE httpContext.Request.UserAgent.Returns("TEST"); #else var headers = new HeaderDict { { "User-Agent", new StringValues("TEST") } }; httpContext.Request.Headers.Returns((callinfo) => headers); #endif // Act string result = renderer.Render(new LogEventInfo()); // Assert Assert.Equal("TEST", result); }
public void NotNullUserAgentRendersEmptyString() { var httpContext = Substitute.For <HttpContextBase>(); #if !NETSTANDARD_1plus httpContext.Request.UserAgent.Returns("TEST"); #else var headers = new HeaderDict(); headers.Add("User-Agent", new StringValues("TEST")); httpContext.Request.Headers.Returns((callinfo) => headers); #endif var renderer = new AspNetRequestUserAgent(); renderer.HttpContextAccessor = new FakeHttpContextAccessor(httpContext); string result = renderer.Render(new LogEventInfo()); Assert.Equal(result, "TEST"); }
public void ForwardedForHeaderNotPresentRenderRemoteAddress() { // Arrange var(renderer, httpContext) = CreateWithHttpContext(); #if !ASP_NET_CORE httpContext.Request.ServerVariables.Returns(new NameValueCollection { { "REMOTE_ADDR", "192.0.0.0" } }); httpContext.Request.Headers.Returns(new NameValueCollection()); #else var headers = new HeaderDict(); httpContext.Request.Headers.Returns(callinfo => headers); httpContext.Connection.RemoteIpAddress.Returns(callinfo => IPAddress.Parse("192.0.0.0")); #endif renderer.CheckForwardedForHeader = true; // Act string result = renderer.Render(new LogEventInfo()); // Assert Assert.Equal("192.0.0.0", result); }
public void ForwardedForHeaderNotPresentRenderRemoteAddress() { var httpContext = Substitute.For <HttpContextBase>(); #if !ASP_NET_CORE httpContext.Request.ServerVariables.Returns(new NameValueCollection { { "REMOTE_ADDR", "192.0.0.0" } }); httpContext.Request.Headers.Returns(new NameValueCollection()); #else var headers = new HeaderDict(); httpContext.Request.Headers.Returns(callinfo => headers); httpContext.Connection.RemoteIpAddress.Returns(callinfo => IPAddress.Parse("192.0.0.0")); #endif var renderer = new AspNetRequestIpLayoutRenderer { CheckForwardedForHeader = true }; renderer.HttpContextAccessor = new FakeHttpContextAccessor(httpContext); string result = renderer.Render(new LogEventInfo()); Assert.Equal("192.0.0.0", result); }
private bool ProcessResponse(CURLE result) { var done = false; try { thisHandle.Free(); if (result == CURLE.OK) { responseHeaderStream.Position = 0; var sr = new StreamReader(responseHeaderStream); // Handle first line { var line = sr.ReadLine(); var index = line.IndexOf(' '); httpVersion = line.Substring(0, index); var nextIndex = line.IndexOf(' ', index + 1); if (int.TryParse(line.Substring(index + 1, nextIndex - index), out var _status)) { status = _status; } message = line.Substring(nextIndex + 1); } inHeader = new HeaderDict(); while (true) { var line = sr.ReadLine(); if (!string.IsNullOrEmpty(line)) { var index = line.IndexOf(':'); var key = line.Substring(0, index).Trim(); var value = line.Substring(index + 1).Trim(); inHeader[key] = value; } else { break; } } var ms = responseBodyStream as MemoryStream; if (ms != null) { inData = ms.ToArray(); } if (status / 100 == 3) { if (followRedirect && GetInfo(CURLINFO.REDIRECT_URL, out string location) == CURLE.OK) { uri = new Uri(location); } else { done = true; } } else { done = true; } } else { CurlLog.LogWarning($"Failed to request: {uri}, reason: {result}"); } CloseStreams(); } catch (Exception e) { CurlLog.LogError("Unexpected exception: " + e); } return(done); }