前言
在之前的.NET 里,我们可以很容易的使用Session读取值。那今天我们来看看 如何在.NET Core中读取Session值呢?
Session
使用Session之前,我们需要到Startup.cs中配置我们的服务如下:
①在ConfigureServices中加入:
services.AddSession();
②在Configure中注入Sessio服务,如下:
//注册Session服务
app.UseSession();
③使用, 假设我们在HomeController.cs中,会有个个人中心Action,每次进来需要判断是否带Id,我们可以这样:
public void GetSession(string Id)
{
if (HttpContext.Session.GetString("UserStuats") == null)
{
HttpContext.Session.SetString("UserStuats", "yes");
}
if (HttpContext.Session.GetString("UserId") == null)
{
HttpContext.Session.SetString("UserId", Id);
}
}
抽象出一个通用方法判断是否当前这个id是否有值,然后进这个Action的时候调用:
GetSession(当前用户Id);
然后我们假设有个返回首页的动作,此时,首页中也是需要获取是否用户已经存在。这个时候,我们就可以去通过Session来判断当前是否用户已经进入:
ViewBag.UserId = HttpContext.Session.GetString("UserStuats") ?? "no";
这里很清楚,我们在首页中判断ViewBag.UserId是yes还是no就能很清楚的知道 当前是否已经有用户进入。
移除Session我们可以用:
HttpContext.Session.Remove("UserStuats");