ich asp.net benutzerdefinierte Fehler haben und sie arbeiten groß:SSL erforderlich, aber immer noch asp.net benutzerdefinierte Fehler halten
<customErrors mode="RemoteOnly" defaultRedirect="~/Error/Index/500">
<error statusCode="403" redirect="~/Error/Index/403" />
<error statusCode="404" redirect="~/Error/Index/404" />
<error statusCode="500" redirect="~/Error/Index/500" />
<error statusCode="502" redirect="~/Error/Index/502" />
<error statusCode="503" redirect="~/Error/Index/503" />
<error statusCode="504" redirect="~/Error/Index/504" />
</customErrors>
Auch hat das SSL-Zertifikat erfolgreich installiert und meine Seite zugänglich ist einfach gut aus beide http und https.
Das Problem trat auf, als ich eine Anforderung erhielt, SSL zu verlangen. Der http-Link zur Site wurde bereits an 1000 Benutzer verteilt. Daher müssen alle Datenströme, die an die http-Adresse gesendet werden, ordnungsgemäß zur HTTPS-Startseite weitergeleitet werden.
Jede Lösung, die ich versucht habe, um die Umleitung zu erhalten, bricht die benutzerdefinierten Fehler.
Ich habe diese Test-URL, die einen Fehler generiert, um meine benutzerdefinierten Fehlerseiten bei ~/Fehler/Test zu testen. Es zeigt meine benutzerdefinierte Fehlerseite mit dem mvc-Layout.
Egal, wie ich es eingerichtet habe, sobald ich Require SSL innerhalb der SSL-Einstellungen in IIS einschalten, wenn ich http benutzerdefinierte Fehler einschalten (so dass die 403.4 Redirect aktiviert ist), versucht es nicht einmal zeige meine benutzerdefinierte 500 Seite. Es zeigt die generische http 500-Seite.
Ich möchte 403.4 auf http-Ebene mit einer Umleitung behandelt und 500 auf der asp.net-Ebene mit meiner benutzerdefinierten Fehlerseite behandelt werden. Im Übrigen ist das keine Seite, sondern ein Controller, der die .net-Ausnahme verwendet, die in einer Sitzungsvariablen enthalten ist.
Wie kann ich das erreichen?
Wie haben Sie "require ssl" eingeschaltet? Normalerweise ist dies für Cookies usw. erforderlich. Sie müssen einen UrlRewrite ausführen, um Anforderungen an HTTPS zu erzwingen. Dazu ist das auf dem Server installierte UrlRewrite-Modul erforderlich. –
@BenDuguid - Nein, Sie brauchen eine * Umleitung * kein * Umschreiben *. True, das UrlRewrite-Modul könnte das tun. – NightOwl888
Ebenfalls verfügbar ist das RequireHttps-Attribut (das Sie als globaler Filter registrieren können) und die Möglichkeit, HTTP über IIS zu deaktivieren. Es gibt also viele Möglichkeiten, wie Sie "HTTPS" benötigen - wir müssen wissen, welche Sie versucht haben. – NightOwl888