ASP.NET: bewährte Methode zum Weiterleiten an https

8

Ich arbeite an einem Projekt mit einer Seite, die das SSL-Zertifikat verwenden muss. Alle Links auf dieser Site verwenden https anstelle von http, aber für den Fall, dass ein Benutzer direkt zu der Seite navigieren kann, möchte ich die http-Version der Seite auf sich selbst umleiten, aber https verwenden.

Ich kann im Ereignis page_load eine Response.Redirect ausführen. Ich kann Javascript schreiben, das die location.href aktualisiert, die das postback verursacht. Ich bin mir sicher, dass es mehr Möglichkeiten gibt, diese Katze zu häuten.

Meine Frage lautet: Was ist die beste Vorgehensweise für eine ASP.NET-Site auf IIS 6 oder 7, um eine http-Seite auf https umzuleiten? Gibt es eine Best Practice oder sind alle Alternativen gleich?

    
Justin C 16.12.2009, 20:48
quelle

4 Antworten

12

Ich würde URL-Umschreiben verwenden, um das zu tun. Warum? weil es einfach zu implementieren ist, keine Änderungen an der Anwendung erfordert und leicht zu pflegen ist.

Auf IIS7 können Sie das mithilfe des URL-Rewrite-Moduls erreichen, zum Beispiel:

%Vor%

Auf IIS6 müssen Sie eine 3rd-Party-Bibliothek verwenden. Ich benutze IIRF ( Ссылка ), es ist kostenlos, stabil und hat eine gute Menge an Funktionen.

    
Ariel 17.12.2009, 00:54
quelle
2

Das Beste wäre, dies an einer von drei Stellen zu tun, vorausgesetzt, Hardware- oder IIS-Einstellungen sind keine Option. Einfach Codeoptionen.

  1. In einem HTTP-Modul. HttpModules werden ausgeführt, bevor eine Anfrage verarbeitet wird, so dass Sie dort die URL-Prüfung durchführen und umleiten können. Das würde ich tun.
  2. In Global.asax.
  3. Auf einer benutzerdefinierten Basisseite in der init-Funktion.

All das wären gute Optionen. Eins und zwei werden garantiert von jeder Anfrage, die von ASP.NET verarbeitet wird, betroffen. Der dritte erfordert, dass Sie sicherstellen, dass alle Ihre Seiten von der Basisseite erben.

Ich würde den Code nicht in jede Seite schreiben, das ist nur eine schlechte Programmierung.

Lassen Sie es mich wissen, wenn Sie mehr Klarheit brauchen, aber das ist ein guter Anfang.

    
Clarence Klopfstein 17.12.2009 04:11
quelle
1

Ich würde die Response.Redirect in page_load aufrufen. Es ist einfacher als das Generieren des Javascript und sendet weniger Bytes an den Client.

Codebeispiel

    
Ray 16.12.2009 20:51
quelle
1

Im Allgemeinen gibt es bestimmte Teile der Site, die entweder HTTPS oder HTTP sein sollen.

Ich verwende das folgende Aktionsattribut, um den Datenverkehr in den einen oder den anderen zu konvertieren:

%Vor%     
Andy 03.01.2010 12:27
quelle

Tags und Links