Link de mi curso de ASP.NET Core MVC con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=asp-net-core-mvc-esp Link de mi curso de C# con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=csharp-esp Link de mi curso de Entity Framework Core con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=entity-framework-core-esp Link de mis cursos con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=todos-los-cursos Link de github: github.com/gavilanch/DeslogueoAutomaticoMVC
Excelente explicación. Tengo una pregunta. Estoy tratando de implementar esto mismo pero en una aplicación mvc en .net framework 4.7.2. Cómo podría lograrlo?
excelente video , son de mucha ayuda, me podrias ayudar para ver como puedo hacer que la sesion dure 10 minutos , este el usuario activo o no , necesito validar que la sesion de un usuario solo dure 10 minutos.
¿Como podría implementar esto si el usuario tiene más de una pestaña del navegador abierta?. Por ahora he comprobado que solo realiza la redirección en una sola pestaña, en las otras solo lo hará cuando se recargue la página.
Se ha simplificado el código asignando las funciones resetearSesion y logout directamente a los eventos onmousemove y onkeypress en lugar de crear una función adicional para manejarlos. Se ha eliminado el uso de una variable para almacenar el tiempo de inactividad y se ha utilizado una variable global para almacenar el tiempo en lugar de crear una variable adicional. También se ha eliminado el setInterval para resetear el cookie ya que se usaba el mismo tiempo que el tiempo de inactividad. const UsuarioAutenticado = '@User.Identity.IsAuthenticated' === 'true'; const tiempoInactivo = 15 * 60 * 1000; const urlResetCookie = '@Url.Action("ResetCookie", "Home")'; if (UsuarioAutenticado) { document.onmousemove = document.onkeypress = resetearSesion; setInterval(resetCookie, tiempoInactivo); } function resetearSesion() { clearTimeout(resetearSesion.timeout); resetearSesion.timeout = setTimeout(logout, tiempoInactivo); } function logout() { const vinculoLogout = document.getElementById('Logout'); vinculoLogout.submit(); } async function resetCookie() { await fetch(urlResetCookie, { method: 'GET' }); }
Hola excelente video! pero tengo una duda, esto se podria aplicar en un sistema API Rest? en mi caso trabajo con Angular y .NET, debería manejarlo desde el framework? gracias!
No sobresatura en la parte del javascript porque todo el código se ejecuta en el cliente y la única vez que llama al servidor es cuando hace logout, excepto en la parte de la cookie que la petición es cada 2 segundos, si multiplicas eso por 1000 usuarios te imaginarás.
Link de mi curso de ASP.NET Core MVC con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=asp-net-core-mvc-esp
Link de mi curso de C# con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=csharp-esp
Link de mi curso de Entity Framework Core con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=entity-framework-core-esp
Link de mis cursos con descuento: felipe-gavilan.azurewebsites.net/api/Redireccion?curso=todos-los-cursos
Link de github: github.com/gavilanch/DeslogueoAutomaticoMVC
justo lo que necesitaba estos videos cortos resolviendo algo en concreto son de mucha ayuda
Son mis favoritos. Pero los largos tienen más visualizaciones usualmente. Así que supongo que es lo que realmente la gente quiere. Saludos!
Excelente explicación. Tengo una pregunta. Estoy tratando de implementar esto mismo pero en una aplicación mvc en .net framework 4.7.2. Cómo podría lograrlo?
Muchas gracias por el video , necesitaba esta solucion ya tenia implementado el cookie pero no tenia el logout automatico.
excelente video , son de mucha ayuda, me podrias ayudar para ver como puedo hacer que la sesion dure 10 minutos , este el usuario activo o no , necesito validar que la sesion de un usuario solo dure 10 minutos.
Gracias Felipe.
Facil y Sencillo 👏👏👏👏
Excelente aporte!
¿Como podría implementar esto si el usuario tiene más de una pestaña del navegador abierta?. Por ahora he comprobado que solo realiza la redirección en una sola pestaña, en las otras solo lo hará cuando se recargue la página.
Excelente!
Saludos sensei
Gracias, Jonathan 🙌🔥
Se ha simplificado el código asignando las funciones resetearSesion y logout directamente a los eventos onmousemove y onkeypress en lugar de crear una función adicional para manejarlos. Se ha eliminado el uso de una variable para almacenar el tiempo de inactividad y se ha utilizado una variable global para almacenar el tiempo en lugar de crear una variable adicional. También se ha eliminado el setInterval para resetear el cookie ya que se usaba el mismo tiempo que el tiempo de inactividad.
const UsuarioAutenticado = '@User.Identity.IsAuthenticated' === 'true';
const tiempoInactivo = 15 * 60 * 1000;
const urlResetCookie = '@Url.Action("ResetCookie", "Home")';
if (UsuarioAutenticado) {
document.onmousemove = document.onkeypress = resetearSesion;
setInterval(resetCookie, tiempoInactivo);
}
function resetearSesion() {
clearTimeout(resetearSesion.timeout);
resetearSesion.timeout = setTimeout(logout, tiempoInactivo);
}
function logout() {
const vinculoLogout = document.getElementById('Logout');
vinculoLogout.submit();
}
async function resetCookie() {
await fetch(urlResetCookie, { method: 'GET' });
}
Excelente video, como todos los tuyos, pero tengo una duda esto mismo lo puedo aplicar en Blazor Server ?
Sí, solo tomar en cuenta usar OnAfterRenderAsync, que es cuando Blazor Server puede acceder a JS en el navegador del usuario
@@gavilanch2 Muchas gracias por tu respuesta !!
Hola excelente video! pero tengo una duda, esto se podria aplicar en un sistema API Rest? en mi caso trabajo con Angular y .NET, debería manejarlo desde el framework? gracias!
Buenas, en tu caso lo harías en Angular, y si usas JWT guardado en LocalStorage, pues simplemente lo borras del LocalStorage. Saludos
@@gavilanch2 petacular ! Gracias saludos 👍
Amigo esto no sobresatura tu servidor? con las multiples peticiones al backend?
para todo esto es mejor trabajar directamente con JWT
No sobresatura en la parte del javascript porque todo el código se ejecuta en el cliente y la única vez que llama al servidor es cuando hace logout, excepto en la parte de la cookie que la petición es cada 2 segundos, si multiplicas eso por 1000 usuarios te imaginarás.
En blazor funciona igual?
Sí, es básicamente igual. Excepto la parte de la cookie. Al menos yo en lo personal uso JWT en Blazor WebAssembly. Saludos