Wechsel zwischen HTTP und HTTPS in ASP.NET MVC

8

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%     
Mark 25.11.2010, 13:59
quelle

2 Antworten

11

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%     
Clicktricity 23.12.2010, 15:54
quelle
1

Um es etwas überschaubarer zu machen. Bei dieser Lösung wird davon ausgegangen, dass die Mehrheit Ihrer Webanwendung das Schema HTTP verwendet.

  1. Erstellen Sie einen neuen Aktionsfilter RequiresHttp (verwenden Sie HTTP, wenn das NeedSsl-Attribut nicht explizit auf Aktion oder Controller angewendet wird),

    %Vor%
  2. Und neues leeres Attribut NeedSSL (zur Anzeige)

    %Vor%
  3. Übernehmen Sie RequesteHttp als globalen Aktionsfilter in Global.aspx.cs

    %Vor%
  4. 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.

    
Arvind Dhasmana 17.01.2012 12:46
quelle

Tags und Links