IdentityServer4 теряет сеанс входа - PullRequest
0 голосов
/ 17 мая 2018

Я установил IdentityServer4 на Azure, и он работал правильно, но когда я вхожу в IdentityServer4, он остается в системе только около 20 минут, а затем снова запрашивает вход в систему (перенаправляет на экран входа).

Кто-нибудь знает, как войти в систему только один раз?

 public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc(op => op.Filters.Add(new AuthorizeAttributeFilter()));

        var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;

        services.AddIdentity<ApplicationUser, IdentityRole>(option =>
            {
                option.Password.RequireDigit = false;
                option.Password.RequiredLength = 3;
                option.Password.RequiredUniqueChars = 0;
                option.Password.RequireLowercase = false;
                option.Password.RequireNonAlphanumeric = false;
                option.Password.RequireUppercase = false;
            })
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders();

        services.AddIdentityServer(options =>
            {
                options.Events.RaiseErrorEvents = true;
                options.Events.RaiseFailureEvents = true;
                options.Events.RaiseInformationEvents = true;
                options.Events.RaiseSuccessEvents = true;

                options.Authentication.CookieLifetime = TimeSpan.FromHours(24);
                options.Authentication.CookieSlidingExpiration = true;

            })
            .AddDeveloperSigningCredential()
            .AddAspNetIdentity<ApplicationUser>()
            .AddClientStore<ClientStore>()
            .AddProfileService<ProfileService>()
            .AddConfigurationStore(options =>
            {
                options.ConfigureDbContext = builder =>
                    builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
                        db => db.MigrationsAssembly(migrationsAssembly));
            })
            .AddOperationalStore(options =>
            {
                options.ConfigureDbContext = builder =>
                    builder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
                        db => db.MigrationsAssembly(migrationsAssembly));
            });

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

        services.AddAuthentication("MyCookie")
            .AddCookie("MyCookie", options =>
            {
                options.ExpireTimeSpan = TimeSpan.FromHours(24);
            });


    }

1 Ответ

0 голосов
/ 18 мая 2018

Это не волшебство, а просто использование куки.Наиболее вероятная вещь - время жизни вашего файла cookie аутентификации.Я не удивлюсь, если по умолчанию будет 20 минут.

...