Мы пытаемся настроить некоторые простые данные сеанса для нашего .net core api. У нас есть приложение angular 5, которое является нашим внешним интерфейсом и работает на post 4200, а api - это ядро .net, работающее на порту 5000.
Кажется, что каждый пример, который я могу найти в Интернете, дает одинаковые результаты. То, что данные сеанса не состоят из запросов к запросу. Как будто API не может понять, что это тот же пользователь, который делает последующие запросы.
Мне кажется, я правильно настроил его в файле Startup.cs
.
public void ConfigureServices(IServiceCollection service)
{
// ....
services.AddDistributedMemoryCache();
services.AddSessions();
// ....
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger, IApiVersionDescriptionProvider versionProvider)
{
// ...
app.UseSession();
app.UseMvc();
// ...
}
Затем я пытаюсь проверить реализацию в одном из моих контроллеров
[HttpGet]
public Task<IEnumerable<UserModelV1>> Query([FromQuery] string email, [FromQuery] string instanceId)
{
HttpContext.Session.SetString("Test", "This is a test");
return _userService.Read(userId, email, instanceId);
}
[HttpPost("delete")]
public IActionResult BatchDelete([FromBody] string[] ids)
{
var message = HttpContext.Session.GetString("Test");
return _userService.Delete(ModelState, userId, ids.ToList());
}
Исходя из всего, что я прочитал, данные сеанса в методе BatchDelete
должны быть равны «Это тест», но по какой-то причине это всегда null
.