.net Core Session使用
程序员文章站
2024-01-04 11:19:58
...
Sessiong
官方文档 https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state
- 添加程序集 Microsoft.AspNetCore.Session
- 在Startup.cs 的 ConfigureServices中添加Session中间件设置
// session 设置
services.AddSession(options =>
{
// 设置 Session 过期时间
options.IdleTimeout = TimeSpan.FromDays(90);
options.CookieHttpOnly = true;
});
- 在Startup.cs 的 Configure中添加Session服务
// 要添加在MVC服务前面
app.UseSession();
- 设置Session数据
// 这是一个拓展方法 将字符串直接设置为Session的值
HttpContext.Session.SetString("Key", Value);
// 这里的Value 需要一个 byte[]
HttpContext.Session.Set("Key", Value);
- 获取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<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);
}