В нашем asp. net core 2.2 Project с IdentityFramework SecurityStamp пользователя обновляется при каждом входе в систему (самого пользователя).
Это приводит к тому, что пользователь выходит из системы везде если он входит в систему на другом устройстве.
Есть ли хороший способ сохранить SecurityStamp? Я имею в виду некоторую конфигурацию в StartUp.cs.
Банкомат в нашем StartUp.ConfigureServices()
мы добавляем аутентификацию как:
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddIdentity<ApplicationUser, IdentityRole>(config =>
{
config.Password.RequireDigit = false;
//config.Password.RequiredLength = Configuration.GetValue<int>("LDAPOptions:MinPasswordLength");
config.Password.RequireLowercase = false;
config.Password.RequireNonAlphanumeric = false;
config.Password.RequireUppercase = false;
config.SignIn.RequireConfirmedEmail = true;
})
.AddDefaultTokenProviders()
// not available in net core 3.0
.AddDefaultUI(UIFramework.Bootstrap4)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddMvc(config =>
{
AuthorizationPolicy policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
})
services.AddDataProtection()
.SetApplicationName($"supii-{services.BuildServiceProvider().GetRequiredService<IHostingEnvironment>().EnvironmentName}")
.PersistKeysToFileSystem(new DirectoryInfo($@"{services.BuildServiceProvider().GetRequiredService<IHostingEnvironment>().ContentRootPath}\keys"));