在c#中获取虚拟URL
本文关键字:虚拟 URL 获取 | 更新日期: 2023-09-27 18:05:18
我们有两个使用webseal的虚拟URL,如
https://third-party-site.com/myapplication/Default.aspx
https://my-application.com/Default.aspx
,在各自的站点验证成功后,内部指向https://original-url.com:8080/Default.aspx。
我想从默认获取当前URL。aspx页面。我试过请求。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本身?
请求。Url返回https://original-url.com:8080/Default.aspx,因为这是IIS接收到的。你没有描述你的基础设施,但我相信你在IIS之前有负载平衡器或某种路由器。这些服务通常(事实上是标准)注入称为x - forward - for的http头。你可以通过以下命令获取:
if (Request.Headers["X-Forwarded-For"].Count > 0) { ... // use the real domain }
如果失败,您应该在IIS之前检查您的服务处理请求的文档。