Menguatkuasakan HTTPS Site-Wide dalam ASP.NET: Panduan Komprehensif
Dalam memastikan komunikasi yang selamat, adalah penting untuk mengubah hala semua trafik tapak web ke HTTPS. Melaksanakan langkah ini secara sejarah melibatkan menyemak peristiwa pemuatan halaman individu dan mengubah hala permintaan bukan HTTPS. Walau bagaimanapun, terdapat kaedah yang lebih berkesan, termasuk memanfaatkan tetapan web.config.
HTTP Strict Transport Security (HSTS)
HSTS menetapkan arahan yang mengarahkan penyemak imbas untuk sentiasa menyambung ke tapak web menggunakan HTTPS, tanpa mengira permintaan awal. Mendayakan HSTS melibatkan penambahan kod berikut pada fail web.config anda:
<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>
Konfigurasi ini mengubah hala semua permintaan HTTP ke HTTPS dan menambahkan pengepala HSTS kepada respons HTTPS berikutnya, mengarahkan penyemak imbas untuk menguatkuasakan sambungan HTTPS untuk sesuatu yang ditentukan. tempoh.
Asal Penyelesaian
Walaupun HSTS ialah kaedah yang disyorkan, kod berikut masih boleh digunakan sebagai sandaran:
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); } }
Nota: Kaedah ini bergantung pada Acara Application_BeginRequest, yang mungkin tidak berfungsi dalam semua senario. HSTS, sebaliknya, menyediakan penyelesaian yang lebih mantap dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk Menguatkuasakan HTTPS Site-Wide dalam ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!