SSL接続を使用するWebアプリケーションを構築しようとしています。だから私はいくつかの調査を行い、必要なものを達成するためにRequireHttpsAttributeクラスを使用できることを発見しました。私が使用すると、アプリケーションが実行されると310エラー(リダイレクトが多すぎる)になります。私は、httpからhttpsへの切り替えを扱うカスタムクラスを構築しました。しかし、それもエラーになります。 TEプロトコルスイッチ処理するMVC3、RequireHttpsとカスタムハンドラーの結果がHTTP 310
私のクラス:
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で機能しました。 –
これらの3つの問題の順序はありますか? if(filterContext.HttpContext.Request.IsSecureConnection)if(string.Equals(filterContext.HttpContext.Request.Headers ["X-Forwarded-Proto"]、 "https"、StringComparison.InvariantCultureIgnoreCase)) HttpContext.Request.IsLocal)。そしてなぜif(filterContext.HttpContext.Request.IsSecureConnection)とif(filterContext.HttpContext.Request.IsLocal)を持つ必要があるのですか? – PussInBoots