我们有两个虚拟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
有没有办法获取虚拟网址?
答案 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之前处理请求的服务文档。