tutorial net mvc example español asp c# asp.net-mvc asp.net-mvc-5 owin

net - mvc 5 login example in c#



Cómo funciona IsPersistent en la autenticación de cookies OWIN (2)

Parece que no entiendo claramente cómo funciona IsPersistent en la autenticación de cookies OWIN, el siguiente código es para usar IsPersistent :

var context = Request.GetOwinContext(); var authManager = context.Authentication; var properties = new AuthenticationProperties { IsPersistent = isPersistence }; authManager.SignIn(properties, identity);

No veo la diferencia cuando el usuario marca / desmarca la opción Remember me (usa IsPersistent detrás) porque si cierro el navegador Chrome y lo vuelvo a abrir para ir al sitio web, la cookie .AspNet.ApplicationCookie todavía está allí y me permite .AspNet.ApplicationCookie incluso Yo marque o desmarque Remember me .

He verificado la definición de IsPersistent en el enlace :

Obtiene o establece si la sesión de autenticación persiste en varias solicitudes.

Pero no entiendo mucho ya que veo que todavía funciona.

El código para configurar la autenticación de cookies OWIN:

app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationMode = AuthenticationMode.Active, AuthenticationType = ApplicationTypes.ApplicationCookie, ExpireTimeSpan = TimeSpan.FromMinutes(30), LoginPath = new PathString("/Account/LogOn") });


Las cookies persistentes se guardarán como archivos en las carpetas del navegador hasta que caduquen o se eliminen manualmente. Esto hará que la cookie persista incluso si cierra el navegador.

Si IsPersistent se establece en falso, el navegador adquirirá una cookie de sesión que se borrará cuando se cierre el navegador.

Ahora, la razón por la cual la cookie de sesión no se borra después de reiniciar el navegador se debe a la configuración predeterminada de Chrome. Para solucionarlo, vaya a la configuración de Chrome -> avanzada y desmarque Continuar ejecutando aplicaciones en segundo plano cuando Google Chrome esté cerrado en la sección Sistema .


public void Configuration(IAppBuilder app) { //Some Code app.UseCookieAuthentication(GetCookieAuthenticationOptions()); //Some Code } private static CookieAuthenticationOptions GetCookieAuthenticationOptions() { var options = new CookieAuthenticationOptions(); { CookieName = "AuthCookie", //Some cookie settings here }; var provider = (CookieAuthenticationProvider)options.Provider; provider.OnResponseSignIn = (context) => { context.Properties.IsPersistent = true; context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddHours(24); }; return options; }