Sto utilizzando Request.IsSecureConnection per verificare la presenza di SSL e il reindirizzamento, se appropriato. Quando si esegue il mio sito Web asp.net sul cloud di Rackspace, il server è in esecuzione dietro un cluster SSL, pertanto IsSecureConnection restituirà sempre false. Lo stesso vale per verificare se l'url contiene "https: //", sempre falso, controlla la porta, ecc. Quindi il sito web rimane bloccato in un grosso ciclo di reindirizzamento.Verificare SSL quando è ospitato nel cloud Rackspace (Mosso)
C'è un altro modo per controllare SSL e reindirizzare dove appropriato? Qualcuno che ha effettivamente fatto questo sul cloud di Rackspace?
Public Class SecurityAwarePage
Inherits Page
Private _requireSSL As Boolean = False
Public Property RequireSSL() As Boolean
Get
Return _requireSSL
End Get
Set(ByVal value As Boolean)
_requireSSL = value
End Set
End Property
Private ReadOnly Property IsSecure() As Boolean
Get
Return Request.IsSecureConnection
End Get
End Property
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
PushSSL()
End Sub
Private Sub PushSSL()
Const SECURE As String = "https://"
Const UNSECURE As String = "http://"
If RequireSSL AndAlso Not IsSecure Then
Response.Redirect(Request.Url.ToString.Replace(UNSECURE, SECURE))
ElseIf Not RequireSSL AndAlso IsSecure Then
Response.Redirect(Request.Url.ToString.Replace(SECURE, UNSECURE))
End If
End Sub
End Class
Non che abbia qualcosa a che fare con la domanda, ma tu hai il mio apprezzamento di usare const per stringhe anche semplici come "http" e "https". –