.net core 针对session遇到的问题

一、配置

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(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;

如还遇到其他问题,可以留言一起分享。

你可能感兴趣的:(.net core 针对session遇到的问题)