Saltar al contenido

¿La mejor manera en asp.net para forzar https para un sitio completo?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *