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);
}