Ich versuche, eine Webanwendung, die eine SSL-Verbindung verwendet, zu erstellen. Also habe ich etwas recherchiert und herausgefunden, dass ich die RequireHttpsAttribute-Klasse verwenden kann, um zu erreichen, was ich brauche. Die Sache ist, dass wenn ich es benutze, die Ausführung der Anwendung zu einem 310 Fehler führt (zu viele Umleitungen). Ich habe sogar eine benutzerdefinierte Klasse für den Wechsel von http zu https erstellt. Aber das führt auch zu einem Fehler.MVC3, RequireHttps und benutzerdefinierte Handler führen zu http 310
meine Klasse te Protokollvermittler zu handhaben:
Public Class RequireSSLAttribute
Inherits ActionFilterAttribute
Public Property IsRequired() As Boolean
Public Overrides Sub OnActionExecuting(filterContext As ActionExecutingContext)
If Me.IsRequired AndAlso filterContext.HttpContext.Request.Url.Scheme <> "https" Then
filterContext.HttpContext.Response.Redirect(filterContext.HttpContext.Request.Url.OriginalString.Replace("http:", "https:").Remove(filterContext.HttpContext.Request.Url.OriginalString.LastIndexOf(":") + 1), True)
filterContext.Result = New HttpUnauthorizedResult
End If
End Sub
Public Sub New()
IsRequired = True
End Sub
End Class
Danke für die Veröffentlichung. Dies funktionierte für Amazon Elastic Beanstalk. –
Beachtet die Reihenfolge dieser drei? if (filterContext.HttpContext.Request.IsSecureConnection), if (string.Equals (filterContext.HttpContext.Request.Headers ["X-Weitergeleitetes-Proto"], "https", StringComparison.InvariantCultureIgnoreCase)), if (filterContext. HttpContext.Request.IsLocal). Und warum muss ich if (filterContext.HttpContext.Request.IsSecureConnection) und if (filterContext.HttpContext.Request.IsLocal) überhaupt haben? – PussInBoots