Проблема истечения времени скольжения в .NET CORE - PullRequest
0 голосов
/ 01 июля 2019

Моя проблема в том, что я не могу установить скользящую конфигурацию истечения для сессии.

Файл Identity Cookie скользящий и не истекает при использовании Приложения, но сеанс не скользит, после истечения времени ожидания сеанса IIS сеанс обновляется сам, и мои данные сеанса очищаются.

Вот мой стартовый код:

    public void ConfigureServices(IServiceCollection services)
    {
        // some other configurations..

        services.ConfigureApplicationCookie(options =>
        {
            options.ExpireTimeSpan = TimeSpan.FromHours(6);
            options.LoginPath = "/Auth/Login";
            options.AccessDeniedPath = "/Dashboard";
            options.LogoutPath = "/Auth/Logout";
            options.SlidingExpiration = true;
            options.Cookie.IsEssential = true;
        });

        services.AddSession(options =>
        {
            options.IdleTimeout = TimeSpan.FromHours(6);
            options.Cookie.HttpOnly = true;
            options.Cookie.IsEssential = true;
        });

    }

Как задать свойство скользящего истечения для cookie сеанса?

1 Ответ

0 голосов
/ 01 июля 2019

Ваш вопрос немного расплывчатый, но я думаю, что то, что вы называете "таймаутом сеанса IIS", на самом деле является остановкой и перезапуском пула приложений.Исходя из этого, вы, вероятно, используете хранилище сеансов в памяти, и, поскольку оно привязано к процессу, ваши сеансы исчезают, когда это делает пул приложений.

В рамках сеансов для хранения используется IDistributedCache.Поставщик по умолчанию для этого DistributedMemoryCache.Несмотря на название, оно на самом деле не распространяется;это просто реализация IDistributedCache, которая использует память, но все еще страдает от всех проблем любого кеша на основе памяти.

Короче говоря, вам нужно постоянное решение распределенного кэширования, такое как SQL Server или Redis.,См .: https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-2.2#establish-distributed-caching-services.

После того, как вы это настроите, ваши сеансы также будут постоянными, и время их ожидания истечет только тогда, когда они действительно должны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...