我想重定向到一個網頁,和力的https:力HTTPS在Response.Redirect的
如
Response.Redirect("~/Login.aspx");
我想重定向到
https://myserver/Login.aspx
我怎麼能強迫HTTPS?
我想重定向到一個網頁,和力的https:力HTTPS在Response.Redirect的
如
Response.Redirect("~/Login.aspx");
我想重定向到
https://myserver/Login.aspx
我怎麼能強迫HTTPS?
謝謝柔滑讓我開始。
我已經結束了與
var url = String.Format("https://{0}{1}",
Request.ServerVariables["HTTP_HOST"] ,
ResolveUrl("~/Login.aspx"));
Response.Redirect(url);
我喜歡從Page_Load中在我想迫使HTTPS的任何頁面調用此方法。具體來說,在用戶可以輸入密碼的任何頁面上,例如登錄,註冊和密碼重置頁面。
protected void ForceHTTPS()
{
string serverName = Request.ServerVariables["SERVER_NAME"];
string pagePath = Page.AppRelativeVirtualPath.Replace("~", "");
string queryString = Request.Url.Query;
if (serverName != "localhost" && !Request.IsSecureConnection)
{
Response.Redirect("https://" + SECURE_DOMAIN + pagePath + queryString);
}
}
我使用的原因預定義的SECURE_DOMAIN不變,而不是僅僅讀出來的Request.ServerVariables的[「SERVER_NAME」]是,如果有一個我們的SSL證書只能「WWW」。在域名的開頭,所以我想確保強制這個域名,以防用戶使用不帶www的域名瀏覽網站,或者可能使用了其他域名別名。
而且,如果服務器名稱爲「localhost」,則不會執行重定向,以便代碼在Visual Studio中運行時也可以在我的開發環境中使用。
請注意,您可以通過以下方式獲取主機:this.Request.Url.Host – 2009-08-17 11:25:27
在這種情況下可能最適合DNSSafeHost – 2009-08-17 11:29:33