【问题标题】:Getting virtual URL in C#在 C# 中获取虚拟 URL
【发布时间】:2015-07-28 10:01:48
【问题描述】:

我们有两个使用 webseal 进行内联网应用的虚拟 URL,例如,

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。 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# asp.net url uri webseal


    【解决方案1】:

    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 之前检查处理请求的服务的文档。

    【讨论】:

      猜你喜欢
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多