Внешний cookie-файл ASP.Net с истечением скользящего срока, отображаемый как cookie-файл сеанса
Я пытаюсь настроить скользящий файл cookie истечения срока действия в Asp.Net. Я ожидаю, что файл cookie появится в диспетчере файлов cookie инструментов разработчика Google Chrome со сроком действия 5 минут после аутентификации, но он отображается как "Сеанс" и никогда не истекает до тех пор, пока не будет нажата кнопка выхода. Это действительно уходит, если браузер закрыт.
Ниже приведен код в его нынешнем виде. Веб-сайт использует аутентификацию единого входа на основе Saml с Kentor.AuthServices
пакет nuget (теперь известный как SustainSys.Saml2
Мы отстаем в версиях).
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/signin"),
CookieSecure = CookieSecureOption.SameAsRequest,
ExpireTimeSpan = TimeSpan.FromMinutes(5),
SlidingExpiration = true,
Provider = new CookieAuthenticationProvider
{
OnApplyRedirect = ctx => { },
OnResponseSignIn = context =>
{
context.Properties.AllowRefresh = true;
context.Properties.ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(5);
}
}
});
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
Kentor.AuthServices.Configuration.Options.GlobalEnableSha256XmlSignatures();
OnResponseSignIn
блок был недавно добавлен на основе этого ответа MSDN: https://forums.asp.net/t/2121970.aspx?OWIN+Authentication+ExpireTimeSpan+not+working
Я хочу, чтобы срок действия файлов cookie истек через 30 минут бездействия. Приведенный выше код установлен на 5 для простоты тестирования.
0 ответов
Как указано в этом комментарии "Информация об истечении срока хранения хранится в защищенном билете cookie". Время истечения должно действовать правильно, даже если вы не видите его в инструментах разработчика, поскольку оно зашифровано внутри самого файла cookie.