一、配置
1.Startup.cs
在ConfigureServices中配置如下:
services.AddSession(option => {
option.Cookie.Name = ".Test.Session"; //设置名称
option.IdleTimeout = TimeSpan.FromSeconds(2000); //Session的过期时间
option.Cookie.HttpOnly = true; //防止XSS攻击,窃取cookie内容
});
在Configure中配置如下:
app.UseSession(); //这个必须在UseMvc之前配置
这个必须要写在UserMvc之前
二、使用
1.在项目中引用类库
Microsoft.AspNetCore.Http
2.使用方法
HttpContext.Session.SetString("code","123456") //写入
HttpContext.Session.GetString("code") //获取
HttpContext.Session.Remove("code") //删除
三、注意事项
1.SetString
或者 GetString
如果没有此方法,还需要引用类库
Microsoft.AspNetCore.Http.Extensions
就可以看到了。
2.如果在使用过程中出现Session写入没有问题,但是读取不到问题,那么我们回到 Startup.cs下,看看ConfigureServices中
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
将
options.CheckConsentNeeded = context => true;
这里的 true
改成 false
就可以了
代码如下
options.CheckConsentNeeded = context => false;
如还遇到其他问题,可以留言一起分享。