Ich verwende MVC 1.0 und habe ein "RequireSSLAttribute" erstellt (wie das in ASP.NET MVC 1.0 Futures, ignoriert aber SSL-Anweisungen für lokale Computer). Ich möchte die Anmelde- und Anmeldeseiten SSL aktivieren, um die gesendeten Kennwörter zu schützen. Ich möchte jedoch, dass der Rest der Website nicht SSL ist.
Durch Hinzufügen des [RequireSSL] -Attributs zu den Anmeldungs- und Anmeldemethoden meines Controllers kann ich die App erfolgreich dazu veranlassen, mit HTTPS auf die entsprechende Seite umzuleiten. Alle Seiten nach der Anmeldung oder Anmeldung verwenden jedoch weiterhin SSL.
Gibt es eine Möglichkeit, die App zurück zu HTTP zu wechseln, ohne ein "RequireNonSslAttribute" erstellen zu müssen, das ich allen anderen Controller-Methoden hinzufügen müsste?
Danke.
Was ist, wenn Sie es einfach zu der Controller-Aktion hinzufügen, zu der Sie nach der Anmeldung weiterleiten? Oder fügen Sie eine Umleitung in Ihrem Basiscontroller hinzu. Zum Beispiel machen wir so etwas in der Base OnActionExecuting:
%Vor%Dies war der schnellste Weg für uns, dasselbe zu erreichen (unser Heim-Controller hatte die Login-Aktionen).
In Ihrer ControllerBase-Klasse können Sie Controller.OnAuthorization überschreiben und dann prüfen, ob das RequireHttps-Attribut (das RequireHttpsAttribute ist neu in MVC2) in der Controller-Aktion festgelegt ist. Wenn das RequireHttps-Attribut nicht festgelegt ist UND die Anforderung unter SSL steht, geben Sie ein Umleitungsergebnis an die Nicht-SSL-URL zurück. Auf diese Weise müssen Sie nicht sowohl ein Controller-Attribut als auch einen controller.action-Namen an einer anderen Stelle setzen.
%Vor%Der Wechsel von HTTPS zu HTTP, während der Benutzer noch angemeldet ist, birgt ein Sicherheitsrisiko, da der Authentifizierungscookie in den folgenden Posts weiterhin vom Browser an den Benutzer übertragen wird, aber dieses Mal nicht verschlüsselt wird.
Nach der Anmeldung ist es am besten (aus Sicherheitsgründen), HTTPS weiter zu verwenden. In jedem Fall, solange die TCP-Sitzung aktiviert ist, wird das anfängliche Hand-Wackeln eingestellt, so dass es auch keinen großen Erfolg bei der Performance geben wird.
Tags und Links asp.net-mvc ssl