我試圖構建一個使用SSL連接的Web應用程序。所以我做了一些研究,發現我可以使用RequireHttpsAttribute類來實現我所需要的。事情是,當我使用它時,應用程序的執行會導致310錯誤(太多重定向)。我甚至建立了一個自定義類來處理從http到https的切換。但是這也會導致錯誤。MVC3,RequireHttps和自定義處理程序結果在http 310
我的類來處理TE協議開關:
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
感謝發佈。這適用於Amazon Elastic Beanstalk。 – 2013-08-04 11:18:17
這三個問題的順序是否正確? (filterContext.HttpContext.Request.IsSecureConnection),if(string.Equals(filterContext.HttpContext.Request.Headers [「X-Forwarded-Proto」],「https」,StringComparison.InvariantCultureIgnoreCase)),if(filterContext。 HttpContext.Request.IsLocal)。爲什麼我需要if(filterContext.HttpContext.Request.IsSecureConnection)和if(filterContext.HttpContext.Request.IsLocal)呢? – PussInBoots 2015-05-30 15:30:21