У меня есть файл cookie, который я настраиваю при входе пользователя в систему, который выглядит следующим образом:
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/User/Login"),
CookieName = "LoginCookie",
ExpireTimeSpan = TimeSpan.FromHours(3),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromHours(3),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
По сути, это не что-то особенное, это просто простой файл cookie, определяемый, когда пользователь входит в систему, и как долго он длится.Теперь я хотел бы определить здесь метод относительно того, что происходит, когда срок действия этого cookie истекает через xx часов, в моем случае - 3 часа.
В этой части я вижу метод, предлагаемый для определения:
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromHours(8),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
Метод называется «OnResponseSignOut», поэтому мне было интересно, если это то, что я искал?
В основном, когда срок действия файла cookie пользователя истекает, прежде чем он будет перенаправлен на страницу входа для повторного входа, я хотел быизмените его сеанс входа в базу данных на «false», как показано ниже:
var loggedSession = context.LoginSessions.FirstOrDefault(y=>y.UserId == 55 && y.SessionId == Session.SessionID);
loggedSession.LoggedIn = false;
Как я могу этого достичь?