.net Core Session使用

Sessiong

官方文档 https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state

  1. 添加程序集 Microsoft.AspNetCore.Session
  2. 在Startup.cs 的 ConfigureServices中添加Session中间件设置
// session 设置
services.AddSession(options =>
{
    // 设置 Session 过期时间
    options.IdleTimeout = TimeSpan.FromDays(90);
    options.CookieHttpOnly = true;
});
  1. 在Startup.cs 的 Configure中添加Session服务
// 要添加在MVC服务前面
app.UseSession();
  1. 设置Session数据
// 这是一个拓展方法 将字符串直接设置为Session的值
HttpContext.Session.SetString("Key", Value);
// 这里的Value 需要一个 byte[]
HttpContext.Session.Set("Key", Value);
  1. 获取Session的值
// 这里用的的C# 7.0的语法 out 可以直接声明使用
loigncontext.HttpContext.Session.TryGetValue("Key", out byte[] Value);
// 将获取的byte[] 转换为字符串
var str = System.Text.Encoding.UTF8.GetString(Value)
// 

*1. 将对象转换为byte[]

// 对象先转换为 json对象字符串 需要(using Newtonsoft.Json;)
string json = JsonConvert.SerializeObject(obj);
//json对象字符串转为byte[]
byte[] serializedResult = System.Text.Encoding.UTF8.GetBytes(json);

*2. 将byte[]转换为对象

// byte[]先转换为json对象字符串
var strJson = System.Text.Encoding.UTF8.GetString(buff);
// 把json对象字符串转换为指定对象 需要using Newtonsoft.Json;
JsonConvert.DeserializeObject(strJson)

*3. 将byte[]转换成对象

/// 
/// 将byte[]转换成对象
/// 
/// 要转换byte[]
/// 转换完成后对象
public static T Bytes2Object(byte[] buff)
{
    string json = System.Text.Encoding.UTF8.GetString(buff);
// 这个方法需要 using Newtonsoft.Json;
    return JsonConvert.DeserializeObject(json);
}

你可能感兴趣的:(.net Core Session使用)