В каждом запросе в веб-API генерируется новый сеанс

#c# #.net #session #asp.net-core-2.0

#c# #.net #сеанс #asp.net-core-2.0

Вопрос:

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

Использование .net Core API 2.2.0

«Startup.cs»

         services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => false; // Default is true, make it false
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });
        services.AddDistributedMemoryCache();
        services.AddSession();
 

Комментарии:

1. добавьте app.UseSession(); в Configure при запуске.

2. Я также добавил его

Ответ №1:

Похоже, вы имеете дело с API. Если бы мне пришлось догадываться, вы не передаете Cookie заголовок с каждым запросом, используя значение, которое сервер вернул изначально через заголовок Set-Cookie ответа. Веб-браузер автоматически обрабатывает подобные вещи для запросов веб-приложений. Однако API — это другой пакет, и вам нужно будет сделать это вручную.

Тем не менее, предполагается, что API-интерфейсы не имеют состояния и, как следствие, обычно не поддерживают идею сеансов и / или файлов cookie. Вы вообще не должны использовать его Session с проектом API. Каждый запрос должен содержать все данные, необходимые для обслуживания этого запроса. В противном случае вы создадите всевозможные проблемы в своем API.