Я сейчас занимаюсь разработкой API в .Net Core 2.1
с клиентским приложением в Vue 2 с Nuxt, и у меня проблемы с сохранением объекта в сеансе в ASP .Net.
Я просмотрел эту и другие ссылки, прежде чем задать этот вопрос, но ничто не могло мне помочь.
Оказывается, я пробовал это с Почтальоном, и если это работает, но я не понимаю, почему это не работает с моим приложением.
Это мой Startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
// Add Database
// End Add Database
services.AddCors(options =>
{
options.AddPolicy("AllowSpecificOrigin", builder =>
builder.AllowAnyHeader()
.AllowAnyMethod()
.AllowAnyOrigin()
));
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
.AddDistributedMemoryCache();
services.AddSession(options =>
{
options.IdleTimeout = TimeSpan.FromMinutes(1440);
options.Cookie.HttpOnly = true;
options.Cookie.IsEssential = true;
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseCookiePolicy();
app.UseCors("AllowSpecificOrigin");
app.UseSession();
app.UseMvc();
}
}
В моем контроллере:
[Route("api/customer/[controller]")]
[ApiController]
public class ClientController : ControllerBase { ...
... Получить и установить Session Var
var model = HttpContext.Session.GetString("User")
и другой контроллер
HttpContext.Session.SetString("User", "Hello World")
HttpContext меняет идентификатор каждый раз, когда я делаю запрос на ajax, но почтальон не меняет идентификатор, и поэтому я могу восстановить cookie.