¿Cómo obtener el control de inicio de sesión de asp.net para autenticar automáticamente a un usuario previamente autenticado?

StackOverflow https://stackoverflow.com/questions/165331

Pregunta

Estoy intentando configurar el control de inicio de sesión para recordar las credenciales de inicio de sesión de un usuario que previamente ha ingresado su nombre de usuario y contraseña con éxito. Establecí la propiedad de recordar mi en verdadero, pero no parece indicar ningún evento en el que pueda leer la cookie e iniciar sesión automáticamente al usuario.

¿Existe un mecanismo sencillo para lograr esto?

¿Fue útil?

Solución

Necesitas a Google para Autenticación de formularios en ASP.NET 2.0

Deberá configurar su aplicación (a través de web.config) y es posible que también deba modificar la configuración de IIS. Si bien todo es bastante sencillo, hay muchas configuraciones que se pueden usar, así que lo mejor es leer algunos de los artículos. ScottGu tiene un entrada de blog que incluye muchos buenos detalles.

También hay muchos buenos videos en www.asp.net , incluidos estos Tutoriales de seguridad

intente Cómo crear una página de inicio de sesión en ASP.NET y Tutorial: Creación de un sitio web con membresía e inicio de sesión de usuario . Si recuerdo, todavía tendrá que realizar la autenticación usted mismo, a menos que use el proveedor de Membresía de Servidor Sql. En ese caso, todavía tiene que configurar la base de datos y web.config.


Esencialmente, una vez que haya configurado la configuración correctamente, tendrá una página de inicio de sesión. En esa página de inicio de sesión, le indica a Forms Authentication que cree el ticket de autenticación una vez que usted los autentique:

if (VerifyUser(name, password) ) // this is not a framework method
    FormsAuthentication.RedirectFromLoginPage(
        userName, false); // no persistent cookie

Si desea leer los datos del ticket de autenticación (desde cualquier otro lugar).

// output just writes to a StringBuilder 'sb' 
output(sb, "Identity.AuthenticationType", Page.User.Identity.AuthenticationType);

FormsIdentity fi = Page.User.Identity as FormsIdentity;
if (fi == null)
{
    output(sb, "Identity Type", Page.User.Identity.ToString());
    return;
}

output(sb, "FormsIdentity.Ticket.IssueDate", fi.Ticket.IssueDate);
output(sb, "FormsIdentity.Ticket.Expiration", fi.Ticket.Expiration);
output(sb, "FormsIdentity.Ticket.Name", fi.Ticket.Name);
output(sb, "FormsIdentity.Ticket.CookiePath", fi.Ticket.CookiePath);
output(sb, "FormsIdentity.Ticket.UserData", fi.Ticket.UserData);
output(sb, "FormsIdentity.Ticket.Version", fi.Ticket.Version);
output(sb, "FormsIdentity.Ticket.IsPersistent", fi.Ticket.IsPersistent);

El punto es, una vez autenticado, asp.net solo redirigirá al usuario a la página de inicio de sesión si el ticket de autenticación ha caducado y el usuario está en una página protegida. Asp.net no sigue pidiéndole que autentique al usuario innecesariamente.

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