2015-07-28 60 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之前處理請求的服務的文檔。