会话cookie过期时,我如何自动重定向



当用户空闲十分钟时,我希望有一个自动重定向。下面是测试代码,它不起作用。

LoginPathLogoutPathAccessDeniedPath不存在。因此,我预计超时后会出现错误。相反,我可以继续成功地点击";主页";以及";关于";没有错误并且没有被重定向。我的期望是我将被重定向回主页。

样本代码:

services.AddMemoryCache();
services.AddSession(options =>
{
options.Cookie.Name = "MyAppCookie";
options.Cookie.IsEssential = true;
options.Cookie.HttpOnly = true;
options.IdleTimeout = TimeSpan.FromMinutes(1);
});

services.ConfigureApplicationCookie(options =>
{
options.Cookie.HttpOnly = true;
options.ExpireTimeSpan = TimeSpan.FromMinutes(1);
options.LoginPath = "/Account/Login";
options.LogoutPath = "/Account/Login";
options.AccessDeniedPath = "/Account/AccessDenied";
options.SlidingExpiration = true;
});

在服务器端,您的代码可以知道会话超时。使用它,您可以设置一个cookie,指示实际会话超时发生的时间(不考虑是活动会话超时还是空闲超时(。页面上运行的javascript可以定期读取cookie,并在超过超时值时重定向用户。

这是我希望能对你有所帮助的众多方法之一。

参考此帖子:

在ASP Net Core 3.1中,当使用ajax 时,过期cookie不会重定向到登录页面

您可以为它们使用Axios拦截器,在令牌到期后的第一个请求中,您可以重定向它。此外,您可以在[https://jwt.io/][1] 并记下有效期,您可以通过它进行检查。

最新更新