ASP.NET MVC определяет метод, который происходит, когда срок действия куки пользователя истекает через xx часов - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть файл 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;

Как я могу этого достичь?

...