2010-10-04 12 views
22

Odziedziczyłem stos kodu dla aplikacji internetowej, która zawiera mnóstwo zakodowanych ścieżek. Mam za zadanie próbować uruchomić go przy użyciu https: //.Wykrywanie https z HttpContext w .net?

Inne niż wykrywanie "https: //" w adresie URL jest bardziej inband sposób, aby wykryć, że obecny kontekst jest https?

Szukasz czegoś podobnego:

System.Web.HttpContext.Current.Request.Url. Protocol.ToString()

Odpowiedz

42

Można użyć HttpContext.Current.Request.IsSecureConnection

12

bezpośrednia odpowiedź na Twoje życzenie na coś takiego System.Web.HttpContext.Current.Request.Url.Protocol.ToString() jest System.Web.HttpContext.Current.Request.Url.Scheme, choć jak mówi Brandon, w his answerHttpContext.Current.Request.IsSecureConnection jest sposób wykryć stosowanie https jako boolean i prawdopodobnie bardziej odpowiedni do problemu, który dajesz w swoim pytaniu.

2

używam tego kodu do automatycznego przekierowania HTTPS

If HttpContext.Current.Request.IsSecureConnection.Equals(False) Then 
    Response.Redirect("https://" + Request.ServerVariables("HTTP_HOST") & HttpContext.Current.Request.RawUrl) 
End If 
+0

Dlaczego downvote? –

+1

Prawdopodobnie dla bitu ".Equals (False)". Choć powinno działać, nie ma sensu pisać tego kodu w ten sposób. Ponadto nie powinieneś używać + do łączenia ciągów w VB. –