在C#中获取虚拟URL

时间:2015-07-28 10:01:49

标签: c# asp.net url uri webseal

我们有两个虚拟URL,它们使用webseal进行内部网应用,例如,

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。即。 https://original-url.com:8080/Default.aspx

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

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

有没有办法获取虚拟网址?

1 个答案:

答案 0 :(得分: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之前处理请求的服务文档。