HTTPS-Site-weit in ASP.NET erzwingen
Hintergrund: Vor einigen Monaten wurde eine Site implementiert, auf der Alle Anfragen mussten über HTTPS erfolgen. Die einzig praktikable Lösung bestand damals darin, die Anfrage während des Seitenladeereignisses zu überprüfen und bei Bedarf auf HTTPS umzuleiten.
Alternative Lösung:
Ein robusterer Ansatz ist Verwenden Sie HTTP Strict Transport Security (HSTS). Durch die Implementierung von HSTS können Sie ungesicherte HTTP-Anfragen verhindern und HTTPS-Verbindungen für einen bestimmten Zeitraum erzwingen.
Web.config-Konfiguration:
Um HSTS in ASP.NET zu konfigurieren, Fügen Sie den folgenden Code zum
<rewrite> <rules> <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> <outboundRules> <rule name="Add Strict-Transport-Security when HTTPS" enabled="true"> <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" /> <conditions> <add input="{HTTPS}" pattern="on" ignoreCase="true" /> </conditions> <action type="Rewrite" value="max-age=31536000" /> </rule> </outboundRules> </rewrite>
Global.asax.cs-Code (Alternative Methode):
Während HSTS der empfohlene Ansatz ist, eine alternative Lösung beinhaltet das Hinzufügen des folgenden Codes zum Application_BeginRequest-Ereignis in Global.asax.cs:
protected void Application_BeginRequest(Object sender, EventArgs e) { if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false)) { Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] + HttpContext.Current.Request.RawUrl); } }
Vergleich:
Die Verwendung von HSTS bietet den Vorteil der Sicherung von HTTPS-Verbindungen auf Browserebene, während der codebasierte Ansatz in Global.asax.cs verarbeitet die Umleitung nur innerhalb der ASP.NET-Anwendung. HSTS ist daher eine umfassendere und empfehlenswertere Lösung.
Das obige ist der detaillierte Inhalt vonWie kann HTTPS in ASP.NET sicher standortweit erzwungen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!