ASP.NET Core使用Session
不知道各位伙伴在學習.NET Core過程中有沒有發現,Session沒法直接用的,和以前的.NET Framework框架相比,已經不再是簡簡單單的Session來調用了,這確實是個挺操蛋的問題,但是人家這么安排也有它的道理,讓我們去更好的熟悉它的使用過程,其實Session的使用,相當于被它封裝成了類似中間件這種獨立的模塊來使用,下面我們就來探究下,怎么.NET Core中使用Session:
 同樣的,我們需要在Startup.cs注入一下Session,一行代碼輕松解決:
這里需要注意啊,其余多余的代碼已經被我我省略了,這里只探究Session的使用,你原來配置好的代碼,千萬別刪,注入Session確實就是這么簡單,可是使用起來可不是這么簡單哦!簡單的String、Int來記住和從Session我相信一點問題都沒有。
//Int類型設置、讀取HttpContext.Session.SetInt32("intKey", 1258);int intKey = (int)HttpContext.Session.GetInt32("intKey");//string類型設置、讀取HttpContext.Session.SetString("strKey", "strKey");string strKey = HttpContext.Session.GetString("strKey");很簡單對吧,看起來是挺簡單的,可是在實際的使用過程中,我們的Session難道就只會用來記住string、Int,簡單的類型?顯然是不可能的,.NET Core的Session比較煩人的是,當我使用Session記住的是泛型,如:用戶信息類,那它保存的是二進制數據,所以我們需要一個輔助類來進行Byte轉換,從而保證拿到的是我們想要的、直觀的數據:
public class ByteConvert{/// <summary>/// 轉換byte[]/// </summary>/// <param name="obj"></param>/// <returns></returns>public static byte[] ConvertByte(object obj){string json = JsonConvert.SerializeObject(obj);byte[] result = Encoding.UTF8.GetBytes(json);return result;}/// <summary>/// 轉換object/// </summary>/// <param name=""></param>/// <param name=""></param>/// <returns></returns>public static object GetObject(byte[] buffer){string json = Encoding.UTF8.GetString(buffer);var result=JsonConvert.DeserializeObject<object>(json);return result;}/// <summary>/// 泛型轉換object/// </summary>/// <typeparam name="T"></typeparam>/// <param name="buffer"></param>/// <returns></returns>public static T GetObject<T>(byte[] buffer){string json = Encoding.UTF8.GetString(buffer);var result = JsonConvert.DeserializeObject<T>(json);return result;}我們再來看具體實現:還是那句話,我們只是使用者,不是開發者,既然要這么用,這么用能實現,那代碼就這樣碼吧。大家都這么碼,這么碼也不錯,對吧。加油,年輕人!!!
/// <summary>/// 獲取登錄用戶/// </summary>/// <returns></returns>public Users CurrentUser{get{return ByteConvert.GetObject<Users>(HttpContext.Session.Get("CurrentUser"));}}總結
以上是生活随笔為你收集整理的ASP.NET Core使用Session的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 计算机硬件:关于CPU的12个硬核干货!
 - 下一篇: 浅谈 UNIX、Linux、ios、an