【问题标题】:Redirect loop during http:// to https:// redirecthttp:// 到 https:// 重定向期间的重定向循环
【发布时间】:2009-06-02 13:37:20
【问题描述】:

我试图强制页面在 SSL 下运行,所以我在 page_load 上实现了以下内容:

if (!Request.IsLocal && !Request.IsSecureConnection)
        {
            Response.Redirect(Helper.GetInstance().SSLBaseURL() + ScriptName());
        }

由于某种原因,这最终陷入了循环。今天早些时候,我检查了 Request.Uri.Scheme,它解析为“http”,尽管我显然连接到 https://www.domain.com/pagename.aspx

您能想到为什么此页面未正确检测到我们在 https 下运行的任何原因吗?

【问题讨论】:

  • 失败时 Request.IsSecureConnection 的值是多少?
  • 这是错误的。我什至注释掉了重定向,手动浏览到 https,并在 Request.IsSecureConnection.ToString() 上做了一个 response.write。
  • 好吧,我决定作弊,并保留一个 Session 变量以确保只发生一次重定向。它解决了循环问题,但问题仍然存在。我想知道这是否与这些特定服务器路由网络流量的方式有关。
  • 没有代理?这将是我唯一的猜测......
  • Keith,你是怎么解决这个问题的?将我们的网站移动到“云”时,我遇到了同样的问题。负载平衡搞砸了一切。

标签: c# ssl redirect https redirect-loop


【解决方案1】:

我会在网络服务器端处理这个问题。如果您正在运行 IIS,则没有那么简单,但您可以启用强制 SSL 选项并为您的 403;4(我认为这是 SSL 所需的错误)实现一个自定义错误页面,该页面重定向到 https。

【讨论】:

    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 2019-08-13
    • 2019-06-16
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多