0

我们有两个虚拟 URL,它们将 webseal 用于我们的 Intranet 应用程序,例如,

https://third-party-site.com/myapplication/Default.aspx
https://my-application.com/Default.aspx

在从各自站点成功验证后,它在内部指向https://original-url.com:8080/Default.aspx 。

我想从 Default.aspx 页面获取当前 URL。我已经尝试过 Request.Url 但它正在返回原始 URL。IE。https://original-url.com:8080/Default.aspx

例如。如果我从https://third-party-site.com/myapplication/访问默认页面,那么它应该将当前 URL 返回为https://third-party-site.com/myapplication/Default.aspx

目前它以https://original-url.com:8080/Default.aspx返回

有没有办法获取虚拟 URL 本身?

4

1 回答 1

0

Request.Url 返回https://original-url.com:8080/Default.aspx,因为这是 IIS 接收的。您没有描述您的基础架构,但我相信您在 IIS 之前有负载均衡器或某种路由器。通常(事实上的标准)这些服务会注入名为X-Forwarded-For 的http 标头。您可以尝试通过以下方式获得:

if (Request.Headers["X-Forwarded-For"].Count > 0) { ... // use the real domain }

如果失败,您应该在 IIS 之前检查处理请求的服务的文档。

于 2015-07-31T12:38:47.720 回答