首頁 >後端開發 >C++ >如何在 ASP.NET 中在網站範圍內強制執行 HTTPS?

如何在 ASP.NET 中在網站範圍內強制執行 HTTPS?

Linda Hamilton
Linda Hamilton原創
2025-01-01 14:38:10995瀏覽

How to Enforce HTTPS Site-Wide in ASP.NET?

在 ASP.NET 中實作 HTTPS 網站範圍:綜合指南

為了確保安全通信,將所有網站流量重新導向到HTTPS。實作此措施歷來涉及檢查各個頁面載入事件和重定向非 HTTPS 請求。然而,還有更有效的方法,包括利用 web.config 設定。

HTTP 嚴格傳輸安全 (HSTS)

HSTS 建立一個指示瀏覽器始終連接的指令使用 HTTPS 訪問網站,無論初始請求如何。啟用HSTS 需要將以下程式碼新增至您的web.config 檔案:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <!-- Prevent HTTP requests and enable HSTS -->
                <rule name="HTTP to HTTPS redirect" stopProcessing="true">
                    <match url=".*" />
                    <conditions>
                        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

此設定將所有HTTP 請求重新導向至HTTPS,並將HSTS 標頭新增至後續HTTPS 回應中,指示瀏覽器對指定的伺服器強制執行HTTPS連接

原始解決方案

而HSTS 是建議的方法,以下程式碼仍可用作後備:

public void Application_BeginRequest(Object sender, EventArgs e) {
    if (!HttpContext.Current.Request.IsSecureConnection && !HttpContext.Current.Request.IsLocal) {
        Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl);
    }
}

注意: 此方法依賴Application_BeginRequest 事件,事件可能不適用於所有場景。另一方面,HSTS 提供了更強大、更可靠的解決方案。

以上是如何在 ASP.NET 中在網站範圍內強制執行 HTTPS?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn