Pregunta

Estoy intentando convertir un sistema de inicio de sesión local al control de inicio de sesión estándar de asp.net 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 bloquear todo en SSL una vez que el usuario inicie sesión, incluida la transmisión del nombre de usuario y la contraseña.

Esto funcionó antes al cargar una segunda página, "loginaction.aspx", con un https:prefijo, luego extraiga el nombre de usuario y la contraseña buscando los controles de cuadro de texto adecuados en Request.Form.Keys.¿Hay alguna manera de hacer algo similar usando 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.

¿Fue útil?

Solución

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

Lo mejor que puede hacer en este escenario es utilizar un IFRAME que contenga una página HTTPS (SSL) que solo contenga el control de inicio de sesión.Es posible que tengas que redirigir a otra página después de iniciar sesión que te permita salir del IFRAME.

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

Otros consejos

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;
                }

        }

`

No podrá tener su sitio sin 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 forma de lograr esto realmente es utilizar marcos de algún tipo.De esta manera, 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 hacer esto es bloquear todo el sitio con SSL, no preocuparse por tener el nombre de usuario y la contraseña encriptados SSL e ir a SSL después de iniciar sesión, o seguir la ruta del marco que mencioné anteriormente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top