Добавить хранилище сеансов в ASP. NET Core 3.0 - PullRequest
0 голосов
/ 14 февраля 2020

В настоящее время мы переносим существующее ASP. NET Core 2.2 веб-приложение на 3.0 До сих пор у нас работало большинство вещей, кроме хранилища сессий.

У нас было это полностью работает в v2.2, поскольку мы использовали его для хранения текущих зарегистрированных данных пользователя. Теперь, когда мы обновились до v3.0, он больше не работает.

Вот код промежуточного программного обеспечения.

public void ConfigureServices(IServiceCollection services)
{

    // configure Razor pages, MVC, authentication here

    services.AddDistributedMemoryCache();

     services.AddSession(options =>
     {
        //prevent session storage from being accessed from client script 
        //i.e. only server side code (added security) 
        options.Cookie.HttpOnly = true;
    });
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseSession();
}

NB Я удалил остальную часть кода промежуточного программного обеспечения для ясности.

Я пробовал перемещение строки app.SetSession () в начало метода в случае, если порядок выполнения был проблемой, но это не имело никакого значения.

Когда я наводил курсор на Свойство HttpContent.Session в отладчике Я получаю следующую ошибку:

HttpContext.Session threw an exception of type System.InvalidOperationException

Как включить хранилище сеансов в ASP. NET Core 3.0?

1 Ответ

1 голос
/ 14 февраля 2020

Я только что попытался добавить app.UseSession () в начало метода, и теперь он работает. Это определенно не работало раньше, но работает сейчас, и это главное.

...