2013-10-20 5 views

Antwort

14

mit suchen Sie etwas wie folgt aus: -

if (!Request.IsLocal && !Request.IsSecureConnection) 
{ 
    string sUrl = Request.Url.ToString().Replace("http:", "https:"); 
    Response.Redirect(sUrl); 
} 

überprüfen Sie auch diese forum bezogen.

Aus dem obigen Link: -

Sie URL installieren können Rewrite Module, eine Umleitung Regel erstellen, und legen Sie sie auf Ihre web.config Datei

<rule name="http to https" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="off" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" /> 
</rule> 
+0

yeah kann ich so etwas in der Datei web.config hinzufügen – user2765331

+0

@ user2765331: - Meine Antwort aktualisiert. Hilft das? –

+0

Wie kann ich das Rewrite-Modul installieren, bekomme ich einen Fehler beim Hinzufügen dieses in web.config – user2765331

10

Ein viel sauberer/einfacheren Weg, es zu tun, als oben erwähnt ist die RequireHttpsAttribute Klasse innerhalb des System.Web.Mvc Pakets zu verwenden.

einfach das Attribut registrieren, indem es auf die FilterConfig.RegisterGlobalFilters() Methode hinzufügen, die innerhalb von Global.asax.cs wie so aufgerufen wird:

FilterConfig.cs

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new RequireHttpsAttribute()); 
    } 
} 

Dies wird das RequireHttps Attribut für alle Controller-Klassen registrieren, Sie wird gezwungen, zu HTTPS umzuleiten, wenn dies nicht bereits geschieht.

Hinweis: Dies gilt nur für ASP.NET MVC und nicht WebAPI.

+0

Ich glaube, das ist der sauberste und einfachste Weg. – mcy

+0

Gilt dies auch für Web-API-Controller? –

+0

Nein, dies gilt nicht für Web-API-Controller. Ich könnte mir vorstellen, dass die korrekte Vorgehensweise in WebAPI darin besteht, den entsprechenden Antwortcode zu senden, der den Client oder Verbraucher der API darüber informiert, dass HTTPS erforderlich ist. Die Verpflichtung wäre dann auf dem Client, um sicherzustellen, dass sie HTTPS verwenden. –