netcore3.0使用Session

首先需要明确一点,netcore使用session不能直接使用,必须引用nuget包并做注册之后才能使用。

例如下面的例子,若未注册session服务会报

1 HttpContext.Session.Set(id,  Encoding.Default.GetBytes(Guid.NewGuid().ToString()));
2 HttpContext.Session.TryGetValue(id,out var value);

于是我们在启动程序startup中进行服务注册。引入nuget包Microsoft.AspNetCore.Session和Microsoft.AspNetCore.Http.Extension(注:netcore3.0框架已集成了这两个包,所以貌似不需要另外安装)。紧接着直接安装通用方式使用,先add再use。【注意中间键放置的位置】

一开始没有注意,直接使用services.AddSession(),一运行,what fack?! 报错?什么鬼?

大概的意思就是没有找到DistributedCache这么个东西,经过查找,发现使用Session必须开启缓存,services.AddDistributedMemoryCache().AddSession()。问题解决,项目成功运行。

原文地址:https://www.cnblogs.com/az4215/p/11895970.html