.net core 版本 :3.1
编译器 :vs2019
因为内置IOC的架构方式,session 的使用方式和以前有些区别,下面给大家介绍一下:
首先,在Startup文件ConfigureServices中添加:
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => false;//这里要改为false,默认是true,true的时候session无效
options.MinimumSameSitePolicy = SameSiteMode.None;
});
// 指定Session保存方式:分发内存缓存
services.AddDistributedMemoryCache();
services.AddSession(option =>
{
option.IOTimeout = TimeSpan.FromHours(1);
option.IdleTimeout = TimeSpan.FromHours(1);
option.Cookie.HttpOnly = true;
// Make the session cookie essential
option.Cookie.IsEssential = true;
option.Cookie.Name = "Cookie名称";//默认cookie如果没有信息,会被清空,导致sessionid改变,所以先给个名字
});
然后,在Startup文件Configure中添加:
app.UseSession();
app.UseCookiePolicy();
使用也十分简单
SessionHelper.SetSession(HttpContext.Session, "ValidateLogin", code);
SessionHelper.GetSession(HttpContext.Session, "ValidateLogin")