public static bool IsFileHandlerActivationRequest(Microsoft.Owin.IOwinRequest request, out FileHandlerActivationParameters activationParameters) { activationParameters = null; var formTask = request.ReadFormAsync(); formTask.RunSynchronously(); var formData = formTask.Result; if (formData != null && formData.Any()) { activationParameters = new FileHandlerActivationParameters(null); return(true); } else { var persistedRequestData = CookieStorage.Load(request.Cookies); if (null != persistedRequestData) { activationParameters = new FileHandlerActivationParameters(persistedRequestData); return(true); } } return(false); }
public static bool IsFileHandlerActivationRequest(Microsoft.Owin.IOwinRequest request, out FileHandlerActivationParameters activationParameters) { activationParameters = null; var formTask = request.ReadFormAsync(); formTask.RunSynchronously(); var formData = formTask.Result; if (formData != null && formData.Any()) { // Get from current request's form data activationParameters = new FileHandlerActivationParameters(null); return(true); } else { // If form data does not exist, it must be because of the sign in redirection. // Read the cookie we saved before the redirection in RedirectToIdentityProvider callback in Startup.Auth.cs var persistedRequestData = CookieStorage.Load(request.Cookies); if (null != persistedRequestData) { activationParameters = new FileHandlerActivationParameters(persistedRequestData); return(true); } } return(false); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="context"></param> /// <param name="request"></param> public HttpRequest(HttpContext context, Microsoft.Owin.IOwinRequest request) { _context = context; _request = request; _headers = request.Headers.GetNameValueCollection(); _files = new HttpFileCollection(); var allDone = new System.Threading.ManualResetEvent(false); _httpClient = new HttpClient(request); _httpClient.RequestExecuting += (sender, e) => { allDone.Set(); }; _httpClient.Disposing += (sender, e) => { allDone.Set(); }; _httpClient.Reset(); foreach (KeyValuePair <string, string[]> i in request.Headers) { _httpClient.Headers.Add(i.Key, i.Value.FirstOrDefault()); } _httpClient.State = HttpClient.ClientState.ReadingContent; _httpClient.BeginRequest(); allDone.WaitOne(); if (_httpClient.PostParameters != null) { _form = _httpClient.PostParameters; } if (_httpClient.MultiPartItems != null) { ParseMultiPartItems(_httpClient); } _queryString = request.Query.GetNameValueCollection(); _cookies = request.Cookies.GetCookieCollection(); }
/// <inheritdoc cref="IOwinRequestMapper.MapAsync"/> public async Task <RequestMessage> MapAsync(IRequest request, IWireMockMiddlewareOptions options) { (UrlDetails urldetails, string clientIP) = ParseRequest(request); string method = request.Method; Dictionary <string, string[]> headers = null; IEnumerable <string> contentEncodingHeader = null; if (request.Headers.Any()) { headers = new Dictionary <string, string[]>(); foreach (var header in request.Headers) { headers.Add(header.Key, header.Value); if (string.Equals(header.Key, HttpKnownHeaderNames.ContentEncoding, StringComparison.OrdinalIgnoreCase)) { contentEncodingHeader = header.Value; } } } IDictionary <string, string> cookies = null; if (request.Cookies.Any()) { cookies = new Dictionary <string, string>(); foreach (var cookie in request.Cookies) { cookies.Add(cookie.Key, cookie.Value); } } BodyData body = null; if (request.Body != null && BodyParser.ShouldParseBody(method, options.AllowBodyForAllHttpMethods == true)) { var bodyParserSettings = new BodyParserSettings { Stream = request.Body, ContentType = request.ContentType, DeserializeJson = !options.DisableJsonBodyParsing.GetValueOrDefault(false), ContentEncoding = contentEncodingHeader?.FirstOrDefault(), DecompressGZipAndDeflate = !options.DisableRequestBodyDecompressing.GetValueOrDefault(false) }; body = await BodyParser.Parse(bodyParserSettings); } return(new RequestMessage(urldetails, method, clientIP, body, headers, cookies) { DateTime = DateTime.UtcNow }); }
public static Microsoft.Owin.IOwinRequest EnableRewind(this Microsoft.Owin.IOwinRequest request, int bufferThreshold = DefaultBufferThreshold) { var body = request.Body; if (!body.CanSeek) { // TODO: Register this buffer for disposal at the end of the request to ensure the temp file is deleted. // Otherwise it won't get deleted until GC closes the stream. request.Body = new FileBufferingReadStream(body, bufferThreshold, TempDirectory); } return(request); }
private (UrlDetails UrlDetails, string ClientIP) ParseRequest(IRequest request) { #if !USE_ASPNETCORE var urldetails = UrlUtils.Parse(request.Uri, request.PathBase); string clientIP = request.RemoteIpAddress; #else var urldetails = UrlUtils.Parse(new Uri(request.GetEncodedUrl()), request.PathBase); var connection = request.HttpContext.Connection; string clientIP = connection.RemoteIpAddress.IsIPv4MappedToIPv6 ? connection.RemoteIpAddress.MapToIPv4().ToString() : connection.RemoteIpAddress.ToString(); #endif return(urldetails, clientIP); }
/// <inheritdoc cref="IOwinRequestMapper.MapAsync"/> public async Task <RequestMessage> MapAsync(IRequest request, IWireMockMiddlewareOptions options) { (UrlDetails urldetails, string clientIP) = ParseRequest(request); string method = request.Method; Dictionary <string, string[]> headers = null; if (request.Headers.Any()) { headers = new Dictionary <string, string[]>(); foreach (var header in request.Headers) { headers.Add(header.Key, header.Value); } } IDictionary <string, string> cookies = null; if (request.Cookies.Any()) { cookies = new Dictionary <string, string>(); foreach (var cookie in request.Cookies) { cookies.Add(cookie.Key, cookie.Value); } } BodyData body = null; if (request.Body != null && BodyParser.ShouldParseBody(method, options.AllowBodyForAllHttpMethods == true)) { body = await BodyParser.Parse(request.Body, request.ContentType, !options.DisableJsonBodyParsing.GetValueOrDefault(false)); } return(new RequestMessage(urldetails, method, clientIP, body, headers, cookies) { DateTime = DateTime.UtcNow }); }
/// <inheritdoc cref="IOwinRequestMapper.MapAsync"/> public async Task <RequestMessage> MapAsync(IRequest request) { (UrlDetails urldetails, string clientIP) = ParseRequest(request); string method = request.Method; Dictionary <string, string[]> headers = null; if (request.Headers.Any()) { headers = new Dictionary <string, string[]>(); foreach (var header in request.Headers) { headers.Add(header.Key, header.Value); } } IDictionary <string, string> cookies = null; if (request.Cookies.Any()) { cookies = new Dictionary <string, string>(); foreach (var cookie in request.Cookies) { cookies.Add(cookie.Key, cookie.Value); } } BodyData body = null; if (request.Body != null && BodyParser.ShouldParseBody(method)) { body = await BodyParser.Parse(request.Body, request.ContentType); } return(new RequestMessage(urldetails, method, clientIP, body, headers, cookies) { DateTime = DateTime.UtcNow }); }
private static bool IsApiRequest(Microsoft.Owin.IOwinRequest request) { string apiPath = VirtualPathUtility.ToAbsolute("~/api/"); return(request.Uri.LocalPath.StartsWith(apiPath)); }
public HttpRequest(Microsoft.Owin.IOwinRequest request) { _request = request; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="request"></param> public HttpClient(Microsoft.Owin.IOwinRequest request) { ReadBuffer = new HttpReadBuffer(2048); _writeBuffer = new byte[2048]; _stream = request.Body; }