2010-10-04 10 views
22

Heredé una pila de código para una aplicación web que contiene montones de rutas codificadas. Me han encargado que intente ejecutarlo usando https: //.Detectando https de HttpContext en .net?

¿Aparte de detectar "https: //" en la URL hay una forma más inband para detectar que el contexto actual es https?

buscando algo como:

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

Respuesta

42

Puede utilizar HttpContext.Current.Request.IsSecureConnection

12

La respuesta directa a su petición de algo así como System.Web.HttpContext.Current.Request.Url.Protocol.ToString() es System.Web.HttpContext.Current.Request.Url.Scheme, aunque como dice Brandon, en his answerHttpContext.Current.Request.IsSecureConnection es la manera de detectar el uso de HTTPS como booleano y probablemente más apropiado para el problema que das en tu pregunta.

2

que utiliza este código para redirección automática a HTTPS

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

Por qué la downvote? –

+1

Probablemente para el bit ".Equals (False)". Aunque debería funcionar, no tiene sentido escribir el código de esa manera. Además, no debe usar + para la concatenación de cadenas en VB. –