[英]Getting virtual URL in C#
我们有两个虚拟URL正在使用webseal进行Intranet应用,例如,
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返回
有没有办法获取虚拟URL本身?
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之前检查处理请求的服务的文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.