【发布时间】: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