Ejemplo n.º 1
0
        private IActionResult Dispatch(string forwardUrl, HttpRequest incomingRequest, HeaderDictionary additionalHeaders = null)
        {
            var proxyResult = _proxy.Dispatch(forwardUrl, Request, additionalHeaders).Result;

            if (proxyResult.Success)
            {
                foreach (var h in proxyResult.Headers)
                {
                    if (h.Key != "Set-Cookie")
                    {
                        Response.Headers[h.Key] = h.Value;
                    }
                }
                foreach (var cookie in proxyResult.Cookies)
                {
                    var option = new CookieOptions()
                    {
                        Domain = cookie.Domain,
                        Path   = cookie.Path,
                    };
                    if (cookie.Expires > DateTime.MinValue)
                    {
                        option.Expires = cookie.Expires;
                    }
                    Response.Cookies.Append(cookie.Name, cookie.Value, option);
                }
                return(new ProxyResult(proxyResult.Content, proxyResult.ContentType, proxyResult.HTTPStatus));;
            }
            else
            {
                return(StatusCode(proxyResult.HTTPStatus));
            }
        }