Я использую asp.net core 1.0, и у меня есть ASP Identity. Я хочу использовать файлы cookie для установки срока действия файла cookie, так что, когда страница простаивает в течение 20 минут, она перенаправляется на страницу входа в систему. В настоящее время это не так. Моя установка:Окончание срока действия файла cookie не перенаправляется на страницу входа
app.UseIdentity();
добавить идентичность как:
services.AddIdentity<CRAMSUser, IdentityRole>(config =>
{
config.User.RequireUniqueEmail = true;
config.Password.RequiredLength = 8;
config.Cookies.ApplicationCookie.LoginPath = "/Auth/Login";
config.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents()
{
OnRedirectToLogin = ctx =>
{
if (ctx.Request.Path.StartsWithSegments("/api") &&
ctx.Response.StatusCode == (int)HttpStatusCode.OK)
{
ctx.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
}
else
{
ctx.Response.Redirect(ctx.RedirectUri);
}
return Task.FromResult(0);
}
};
})
.AddEntityFrameworkStores<CRAMSContext>()
.AddDefaultTokenProviders();
Как настроить его так, что он будет перенаправлять на страницу входа, сидя простаивает как час?
Отправляете ли вы по волшебству, если пользователь ничего не делает или не отправляется новый запрос? – blowdart
@ blowdart, да по волшебству или обнаружение тайм-аута сеанса, или он может быть настроен на 15 минут бездействия. Например, я буду сидеть на странице в режиме ожидания более 20 + минут, и аутентификация будет выходить из системы, но страница останется на той же странице. Тогда в моей консоли, это будет ошибка и сказать, несанкционированный. Вместо того, чтобы оставаться на одной странице, я бы предпочел, чтобы он обновился и перешел прямо на страницу, в которой говорится, что «сеанс отключен, пожалуйста, войдите в систему». – epv
По магии не получится. У вас должен быть какой-то javascript-опрос URL-адреса, который, когда истекает срок действия файла cookie, возвращает 403, который вы обнаруживаете, а затем вы можете перенаправить в javascript. – blowdart