.Net Core Session使用

时间:2021-02-16 09:15:26

Sessiong

  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);
byte[] serializedResult =
//json对象字符串转为byte[]
System.Text.Encoding.UTF8.GetBytes(json);

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

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

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

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