2011-06-10 12 views
10

Mi aplicación web ASP.NET MVC permite a los administradores cambiar sus propios nombres de usuario u otros usuarios.FormsAuthentication - manejo de un cambio de nombre de usuario

Los usuarios han iniciado sesión llamando al FormsAuthentication.SetAuthCookie(userName [string], createPersistentCookie [bool]). Se desconectan llamando al FormsAuthentication.SignOut(). Entiendo que después de actualizar el nombre de usuario, tendría que cerrar sesión y volver a ingresar. ¿Pero cómo recupero el existente valor de createPersistentCookie? p.ej. ¿Cómo retengo su configuración original "recordarme" al volver a iniciar sesión?

Respuesta

8
var cookieName = FormsAuthentication.FormsCookieName; 
var request = HttpContext.Current.Request; 
var cookie = request.Cookies.Get(cookieName); 
if (cookie == null) 
    return; 

try 
{ 
    var ticket = FormsAuthentication.Decrypt(cookie.Value); 

    //This should give you what you want... 
    bool isPersistent = ticket.IsPersistent; 
} 
catch (Exception ex) 
{ 
    //Logging 
}