2017-06-12
Site.Master.cs 的 Page_Load() 增加
// 自動重導 HTTP 到 HTTPS,IIS 必須 Port 80 和 443 都啟用 string https= Request.ServerVariables["HTTPS"].ToString(); string http_host = Request["HTTP_HOST"].ToString(); string rawUrl = Request.RawUrl; if (Request.ServerVariables["HTTPS"].ToUpper() != "ON") { Response.Redirect("https://" + Request["HTTP_HOST"] + Request.RawUrl); } |
Visual Studio 2017 v15.2 在 Site.Master.cs 的 Page_Load() 增加把 HTTP 自動重導到 HTTPS 的程式後,發現在 Site.Master.cs 設定中斷點,在 Visual Studio 2017 下執行,會出現錯誤
開啟 [進階] 設定中的 TLS 1.0、TLS 1.1 與 TLS 1.2,然後再嘗試重新連線到 https://localhost:1931 。如果持續發生此錯誤,則此網站可能使用不支援的通訊協定。請連絡網站系統管理員。
(下圖) 在上圖中按下「變更設定」按鈕,跳出的畫面顯示 TLS 1.0、1.1、1.2 都有勾選
(下圖) 第一張圖片如果點下 RC4 之後的詳細連結
RC4 編碼器已不再支援在 Internet Explorer 11 或 Microsoft 邊緣
https://support.microsoft.com/zh-tw/help/3151631/rc4-cipher-is-no-longer-supported-in-internet-explorer-11-or-microsoft-edge
後來改成寫在 Global.asax.cs 中才可以在 Visual Studio 2017 v15.2 中除錯執行
// 自動重導 HTTP 到 HTTPS,IIS 必須 Port 80 和 443 都啟用
void Application_BeginRequest(object sender, EventArgs e)
{
//取得每一個reuqest網址
bool needsSSL = true;
if (needsSSL != Request.IsSecureConnection)
{
if (needsSSL)
{
Response.Redirect(Uri.UriSchemeHttps + Uri.SchemeDelimiter + Request.Url.Host + Request.Url.PathAndQuery, true);
}
else
{
Response.Redirect(Uri.UriSchemeHttp + Uri.SchemeDelimiter + Request.Url.Host + Request.Url.PathAndQuery, true);
}
}
}
|
(待續)
沒有留言:
張貼留言