No olvides que en las ciencias un error casi siempere suele tener diversas soluciones, de igual modo aquí compartimos lo más óptimo y mejor.
Solución:
Utilice HSTS (HTTP Strict Transport Security)
de http://www.hanselman.com/blog/HowToEnableHTTPStrictTransportSecurityHSTSInIIS7.aspx
Respuesta original (sustituido por el anterior el 4 de diciembre de 2015)
básicamente
protected void Application_BeginRequest(Object sender, EventArgs e)
if (HttpContext.Current.Request.IsSecureConnection.Equals(false) && HttpContext.Current.Request.IsLocal.Equals(false))
Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"]
+ HttpContext.Current.Request.RawUrl);
eso iría en global.asax.cs (o global.asax.vb)
no conozco una forma de especificarlo en web.config
La otra cosa que puede hacer es usar HSTS devolviendo el encabezado “Strict-Transport-Security” al navegador. El navegador tiene que admitir esto (y en la actualidad, son principalmente Chrome y Firefox los que lo hacen), pero significa que una vez configurado, el navegador no realizará solicitudes al sitio a través de HTTP y, en cambio, las traducirá a solicitudes HTTPS antes de emitirlas. . Pruebe esto en combinación con una redirección de HTTP:
protected void Application_BeginRequest(Object sender, EventArgs e)
switch (Request.Url.Scheme)
case "https":
Response.AddHeader("Strict-Transport-Security", "max-age=300");
break;
case "http":
var path = "https://" + Request.Url.Host + Request.Url.PathAndQuery;
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", path);
break;
Los navegadores que no son conscientes de HSTS simplemente ignorarán el encabezado, pero aún serán atrapados por la declaración de cambio y enviados a HTTPS.
El módulo IIS7 le permitirá redirigir.
valoraciones y reseñas
Si te gusta el asunto, puedes dejar una división acerca de qué te ha impresionado de esta reseña.