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

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

Linda Hamilton
發布: 2025-01-01 14:38:10
原創
967 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板