Чтобы установить пользовательское время истечения для двухфакторного куки-файла, существует два разных способа:
Вариант 1: Поместите следующее в ваш запуск после services.AddAuthentication()
Позвоните:
services.Configure<CookieAuthenticationOptions>
(IdentityConstants.TwoFactorRememberMeScheme, options =>
{
//this will override the default 14 day expire time
options.ExpireTimeSpan = TimeSpan.FromDays(30);
});
Хотя вам также следует подумать о переименовании куки для сокрытия информации - быстрый поиск в Google покажет, что вы используете идентификацию asp.net, посмотрев на имя куки по умолчанию.Это можно изменить одновременно с помощью свойства Cookie.Name:
services.Configure<CookieAuthenticationOptions>
(IdentityConstants.TwoFactorRememberMeScheme, o =>
{
//this will override the default cookie name for information hiding
o.Cookie.Name = "app.2fa.rememberme";
//this will override the default 14 day expire time to 30 days
o.ExpireTimeSpan = TimeSpan.FromDays(30);
});
Опция 2: Вы можете изменить имя и время истечения, если вы используете вызов AddIdentityCookies ()с вашим вызовом AddAuthentication ():
services.AddAuthentication().AddIdentityCookies(o =>
{
o.TwoFactorRememberMeCookie.Configure(a => a.Cookie.Name = "app.2fa.rememberme");
});
Обратите внимание, что вариант 2 не будет работать , если вы также используете Identity Server, так как он вызывает это во время вызова UseIdentityServer ().
Для справки, я узнал, как это сделать, просмотрев тесты Identity: https://github.com/aspnet/Identity/blob/c7276ce2f76312ddd7fccad6e399da96b9f6fae1/test/Identity.Test/IdentityOptionsTest.cs#L77. Это нигде не задокументировано, что я мог найти, и я изо всех сил пытался наконец выяснить это.Надеемся, что это поможет следующему человеку, который придет, посмотреть, как это сделать.
Хотя по теме сокрытия информации - вы также можете рассмотреть возможность переименования файла cookie TwoFactorUserId, который используется во время проверки кода при успешном входе в систему.Это можно сделать так же, за исключением того, что IdentityConstant немного отличается:
services.Configure<CookieAuthenticationOptions>
(IdentityConstants.TwoFactorUserIdScheme, options =>
{
options.Cookie.Name = "app.2fa.userid";
});
services.AddAuthentication().AddIdentityCookies(o =>
{
o.TwoFactorUserIdCookie.Configure(a => a.Cookie.Name = "app.2fa.userid");
});