2011-11-29 23 views
9

Tengo un sitio que, por diseño y preferencia del cliente, se puede servir utilizando HTTP o HTTPS. La compañía cliente simplemente elige si desea o no un enlace a nuestro sitio usando http: // o https: // e IIS hace el resto. Se está agregando una función a una página que trata con información confidencial que solo debe verse a través de SSL. Los clientes han acordado que esta característica adicional debería desactivarse en esta página cuando no se utiliza una conexión HTTPS.¿Cómo verifica si la página actual usa SSL en ASP.Net?

En el evento Page_Load, me gustaría agregar una declaración IF que verifique si la página se está viendo actualmente a través de HTTPS para mostrar o deshabilitar esta característica opcional. Probablemente pueda leer la URL para ver si comienza con https: // pero me preocupa que el enfoque sea inseguro.

¿Hay alguna propiedad que pueda verificarse para probar HTTPS durante el evento Page_Load?

Respuesta

24

Está buscando Request.IsSecureConnection.

+0

Muchas gracias SLaks! – David

+0

Pero no está funcionando en el entorno del servidor de equilibrio de carga. Por favor, consulte esta publicación http://stackoverflow.com/questions/998397/why-does-request-issecureconnection-return-false-when-true-is-expected. Enfrentamos el mismo problema –

1

Si está utilizando IIS 7 (o posterior) y está planeando redirigir una solicitud que llega a su página a través de una conexión HTTP a una conexión HTTPS, considere usar el IIS URL Rewrite Module.

Podrá configurar una solución en lugar de codificarla. Por ejemplo, puede configurar una Regla de redireccionamiento para tomar una URL como http://my.host.com/my-secure-page.aspx y redirigirla a https://my.host.com/my-secure-page.aspx.

Puede hacer mucho más con este módulo y lo mejor de todo es que puede hacerlo sin tocar el código de la aplicación.

Consulte Redirect HTTP to HTTPS with IIS 7 para obtener más información.

Cuestiones relacionadas