我正在尝试构建一个使用 SSL 连接的 Web 应用程序。所以我做了一些研究,发现我可以使用 RequireHttpsAttribute 类来实现我所需要的。问题是当我使用它时,应用程序的执行会导致 310 错误(重定向太多)。我什至构建了一个自定义类来处理从 http 到 https 的切换。但这也会导致错误。
我的类来处理协议切换:
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