useurls usekestrel usehttpsredirection the net for failed dotnet dev determine certs asp asp.net https

asp.net - usehttpsredirection - usekestrel net core



Cómo usar HTTPS en una aplicación ASP.Net (5)

Deseo usar HTTPS en mi aplicación web ASP.NET, pero solo para la página Login.aspx.

¿Cómo se puede lograr esto?


Después de obtener la configuración / instalación SSL, desea hacer algún tipo de redirección en la página de inicio de sesión a https: //. Luego, cualquiera sea la página a la que se envíe al usuario después de la validación, puede ser simplemente http: //.

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender If Request.IsSecureConnection = False And _ Not Request.Url.Host.Contains("localhost") Then Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://")) End If End Sub

Esto puede ser más fácil de implementar en una página maestra o solo en todas las páginas que necesita https. Al buscar "localhost", evitará obtener un error en su entorno de prueba (a menos que su servidor de prueba tenga otro nombre que no sea verificar: "mytestservername").


Puede habilitar HTTPS en su configuración de IIS, pero no será "seguro" a menos que adquiera un Certificado SSL y lo conecte a IIS. Asegúrate de tener abierto el puerto 443.


Puede publicar su propio certificado o puede comprar uno. La advertencia es que comprar uno, dependiendo de la compañía, significa que ya está almacenado en el almacén de certificados para la mayoría de los navegadores. Su publicación propia no será y sus usuarios tendrán que dar el paso adicional de instalar su certificado.

No dice qué versión de IIS está utilizando, pero aquí hay algunas instrucciones detalladas para IIS 6

Puede comprar certs relativamente baratos o puede ir con los big boys (verisign) y obtener un certificado de validación extendido que convierte su barra de direcciones en IE, verde. También es un proceso de validación algo riguroso y lleva tiempo.

Si conoce a todos los usuarios que llegarán a su sitio web, no hay problema con la instalación del suyo. Sin embargo, para un sitio web abierto con usuarios anónimos (que usted no conoce), probablemente sea mejor comprar uno que ya se encuentre en la mayoría de los principales buscadores, tiendas de certificados.

Puede habilitar SSL a través de IIS y requerirlo solo para su página login.aspx y no para el resto.


  1. Primero obtén o crea un certificado

  2. Obtenga el módulo SecureWebPageModule desde http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver . Las instrucciones para la instalación se pueden encontrar en el artículo.

  3. Agregue la etiqueta secureWebPages a web.config

    <configuration> ... <secureWebPages enabled="true"> ... </secureWebPages> ... <system.web> ... </system.web> </configuration>

  4. Agregue los archivos y directorios para usar para el protocolo https:

    <secureWebPages enabled="true"> <file path="Login.aspx" /> <file path="Admin/Calendar.aspx" ignore="True" /> <file path="Members/Users.aspx" /> <directory path="Admin" /> <directory path="Members/Secure" /> </secureWebPages>

¡Espero que esto ayude!


descargo de responsabilidad: participé en el desarrollo de este proyecto

Recomendaría usar http://nuget.org/packages/SecurePages/ Te da la posibilidad de proteger páginas específicas o usar Regex para definir las coincidencias. También obligará a todas las páginas que no coincidan con Regex o directamente especificadas de nuevo a HTTP.

Puede instalarlo a través de NuGet: Install-Package SecurePages

Los documentos están aquí: https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages

Uso simple:

SecurePagesConfiguration.Urls.AddUrl("/cart");

o

SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);