SSL parcial del sitio con el control de inicio de sesión asp.net

Estoy intentando convertir un sistema de inicio de sesión de fabricación propia en el control de inicio de sesión asp.net estándar incluido en .net. Quiero que todas las comunicaciones en el sitio web para un usuario que no haya iniciado sesión sean en texto claro, pero se bloquea todo en SSL una vez que el usuario inicie sesión, incluida la transmisión del nombre de usuario y la contraseña.

Ya lo había hecho antes cargando una segunda página - "loginaction.aspx" - con un prefijo https: luego, sacando el nombre de usuario y la contraseña buscando los controles de texto apropiados en Request.Form.Keys. ¿Hay alguna manera de hacer algo similar con los controles de inicio de sesión de .net? No quiero tener una página de inicio de sesión separada, sino incluir este control (dentro de una vista de inicio de sesión) en cada página del sitio.

0
agregado
Puntos de vista: 1

3 Respuestas

No podrá hacer de lo que está hablando simplemente porque la devolución de datos (que es lo que utiliza el control de inicio de sesión) va a ser cualquiera que sea la seguridad de la página (SSL o no SSL).

Su mejor opción en este escenario es usar un IFRAME que contenga una página HTTPS (SSL) que solo contenga el control de inicio de sesión. Es posible que deba redireccionar a otra página después del inicio de sesión que le permite salirse del IFRAME.

Plan B sería tener un formulario separado en la página (fuera de su FORMULARIO principal) que tiene la propiedad ACCIÓN apuntando a otra página donde maneja el inicio de sesión. Tendrá que pasar su propio código de inicio de sesión para manejar la autenticación de formularios.

0
agregado
Tenga en cuenta que el uso de cualquiera de estas técnicas todavía no es seguro, ya que es susceptible a un hombre en el ataque medio. Para más información, lea esto. jlorenzen.blogspot.com/2009/11/…
agregado el autor Erik Funkenbusch, fuente

No podrá tener su sitio como no SSL, con un cuadro de inicio de sesión en cada página, y luego enviar el nombre de usuario y la contraseña a través de SSL.

La única manera de realmente lograr esto es usar marcos de algún tipo. De esta forma, toda su página podría no ser SSL, pero el marco de inicio de sesión tendría que ser SSL.

La forma habitual de hacerlo es bloquear todo el sitio con SSL, no se preocupe por tener el nombre de usuario y la contraseña SSL encriptados e ir a SSL después de iniciar sesión, o vaya a la ruta de trama que mencioné anteriormente.

0
agregado

Pude lograr esto agregando un evento OnClientClick al control del botón de inicio de sesión y configurándolo en la siguiente función de JavaScript.
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

0
agregado