2015-07-28 56 views
0

虚拟URL我们有两个虚拟的URL是使用WebSEAL对我们的内联网器件的应用,例如,获得在C#

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/访问默认页面,那么它应该返回当前URL为https://third-party-site.com/myapplication/Default.aspx

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

有没有什么办法让虚拟网址本身?

回答

0

Request.Url返回https://original-url.com:8080/Default.aspx因为这是IIS收到的。 你不描述你的基础设施,但我相信你在IIS之前有负载平衡器或某种类型的rouer。这些服务通常(事实上是标准)注入名为X-Forwarded-For的http头。您可以尝试通过以下方式获取:

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

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