在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本身?

在c#中获取虚拟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之前检查您的服务处理请求的文档。