我一直在嘗試做http重定向到https幾天,任何幫助將不勝感激!我在共享主機環境中託管我的網站,我不允許在IIS中更改任何內容。使用https c#強制頁面,出現錯誤此網頁有重定向循環
下面是在C#中的登錄頁面
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Url.ToString().IndexOf("http://") != -1)
{
string redirectUrl = Request.Url.ToString().Replace("http://", "https://");
//Response.Write(redirectUrl);
Response.Redirect(redirectUrl);
}
}
我得到了錯誤的代碼是「此網頁有重定向循環」。我也嘗試在web.config文件中執行重定向,但出現相同的錯誤。無論如何強制使用https的網頁?
如果你是負載平衡器後面的服務類型我相信你需要確保'X-Forwarded-For'頭部通過。 – asawyer 2013-02-26 13:32:54
嗨asawyer,任何示例如何我可以通過X-Forwarded-For頭? – user2055026 2013-02-26 14:00:08
您無法觸摸IIS,但主機環境如何。它是一個負載平衡器嗎?你沒有提供任何細節。問題在於瀏覽器使用HTTPS與負載均衡服務器通信,但負載均衡器在HTTP端口80內部與IIS進行通信。您可能完全沒問題,但應用程序無法知道或執行此操作。解決的辦法是配置平衡軟件,用'x-forwarded-proto'(not-for,sorry)標頭傳遞原始請求的http/https值,然後在你的應用程序中用'Request.Headers'採集。 – asawyer 2013-02-26 14:04:05