【发布时间】:2017-09-08 03:05:28
【问题描述】:
我必须在请求期间生成一个 URL。此 URL 必须通过绝对路径(电子邮件中的链接到调用用户)指向应用程序本身。 现在我遇到的问题是,在某些情况下,应用程序在使用不同代理的环境中运行。不同的用户只能访问其中一个代理,但不能访问应用程序本身。所以我必须使用发送到代理的 URL,而不是代理用来调用应用程序的 URL。
目前我使用 HttpRequest.Current 来构建 URL。 在这种情况下会传送错误的 URL。
.net 类或代理标准(HTTP-Headers,...)中是否有任何属性来保留原始 URL?
【问题讨论】:
-
代理不应更改 URL。如果代理一直在更改 URL,它们将无用。您是否首先仔细检查了您是如何向代理发出请求的?
-
我已经创建了一个测试设置来检查请求发生了什么,并且 URL 发生了变化......也许使用的代理没有很好地实现......但我必须处理这种情况。 (我说的是应用程序接收的 URL,而不是浏览器中的 URL)
-
网址是通过什么方式改变的?
-
如果代理使用规则来重写请求,它还需要以某种方式附加原始 URL 以使其在目标服务器上保持可用。但是不要被代理使用完全限定的 URL(包括方案和权限)并发出仅包含路径/资源的上游请求所误导。主机头加上使用的方案加上请求的资源应该仍然是相同的 URL。为了说明这一点,如果不使用代理,客户端应该发出与代理代表它的请求相同的请求。
-
使用“url1”调用代理并将请求重定向到使用“url2”的应用程序。在 HttpRequest.Current 对象中仅使用“url2”。我也找不到任何标题或类似的东西。也许这只是因为代理或其在我们测试环境中的配置,但只要能发生这种情况,我必须能够处理这种情况......
标签: c# asp.net asp.net-mvc proxy http-proxy