Ich habe also das [RequiresHttps] -Attribut gefunden, aber sobald du in https steckst, bist du dort gelandet, um zu versuchen, Aktionen für eine einzelne URL (und ein Schema) zu haben, die ich gefunden habe Ich muss meinen eigenen ExtendedController erstellen, um für Aktionen, die [RequireHttps] nicht verwenden, zu http zurückzukehren.
Ich frage mich nur, ob das, was ich mache, in Ordnung ist oder ob es einen besseren Weg gibt?
%Vor%Was Sie haben, ist syntaktisch korrekt. Es wird jedoch vorgeschlagen, einen neuen Aktionsfilter zu erstellen, der vom Standard RequireHttpsAttribute erbt und einen Parameter zum Wechseln zwischen http und https verwendet.
%Vor%Dann würden Sie auf Ihrer Aktionsmethode oder Controller verwenden:
%Vor%...
oder
%Vor%Um es etwas überschaubarer zu machen. Bei dieser Lösung wird davon ausgegangen, dass die Mehrheit Ihrer Webanwendung das Schema HTTP verwendet.
Erstellen Sie einen neuen Aktionsfilter RequiresHttp (verwenden Sie HTTP, wenn das NeedSsl-Attribut nicht explizit auf Aktion oder Controller angewendet wird),
%Vor%Und neues leeres Attribut NeedSSL (zur Anzeige)
%Vor%Übernehmen Sie RequesteHttp als globalen Aktionsfilter in Global.aspx.cs
%Vor%Wenden Sie jetzt NeedSslAttribute auf Controller und Aktionen an, für die Sie das HTTPS-Schema verwenden möchten
%Vor% Dieser Code ist nicht perfekt, da der Aktionsfilter RequiresHttp
mehrere Jobs ausführt, z. B. das Attribut NeedSsl
überprüfen und HTTP
oder HTTPS
scheme anwenden. Wäre besser gewesen, wenn wir zwei Aktionsfilter RequiresHTTP
und RequiresHTTPS
verwenden könnten.
Nun, wenn RequiresHTTP
als globaler Filter festgelegt wurde und RequiresHTTPS
filter auf bestimmte Aktionen angewendet wurde und der spezifische RequiresHTTPS
filter den Vorzug gegeben hätte.
Tags und Links asp.net-mvc