ASP.NET Core使用Session
不知道各位伙伴在學(xué)習(xí).NET Core過程中有沒有發(fā)現(xiàn),Session沒法直接用的,和以前的.NET Framework框架相比,已經(jīng)不再是簡(jiǎn)簡(jiǎn)單單的Session來調(diào)用了,這確實(shí)是個(gè)挺操蛋的問題,但是人家這么安排也有它的道理,讓我們?nèi)ジ玫氖煜に氖褂眠^程,其實(shí)Session的使用,相當(dāng)于被它封裝成了類似中間件這種獨(dú)立的模塊來使用,下面我們就來探究下,怎么.NET Core中使用Session:
同樣的,我們需要在Startup.cs注入一下Session,一行代碼輕松解決:
這里需要注意啊,其余多余的代碼已經(jīng)被我我省略了,這里只探究Session的使用,你原來配置好的代碼,千萬別刪,注入Session確實(shí)就是這么簡(jiǎn)單,可是使用起來可不是這么簡(jiǎn)單哦!簡(jiǎn)單的String、Int來記住和從Session我相信一點(diǎn)問題都沒有。
//Int類型設(shè)置、讀取HttpContext.Session.SetInt32("intKey", 1258);int intKey = (int)HttpContext.Session.GetInt32("intKey");//string類型設(shè)置、讀取HttpContext.Session.SetString("strKey", "strKey");string strKey = HttpContext.Session.GetString("strKey");很簡(jiǎn)單對(duì)吧,看起來是挺簡(jiǎn)單的,可是在實(shí)際的使用過程中,我們的Session難道就只會(huì)用來記住string、Int,簡(jiǎn)單的類型?顯然是不可能的,.NET Core的Session比較煩人的是,當(dāng)我使用Session記住的是泛型,如:用戶信息類,那它保存的是二進(jìn)制數(shù)據(jù),所以我們需要一個(gè)輔助類來進(jìn)行Byte轉(zhuǎn)換,從而保證拿到的是我們想要的、直觀的數(shù)據(jù):
public class ByteConvert{/// <summary>/// 轉(zhuǎn)換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>/// 轉(zhuǎn)換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>/// 泛型轉(zhuǎn)換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;}我們?cè)賮砜淳唧w實(shí)現(xiàn):還是那句話,我們只是使用者,不是開發(fā)者,既然要這么用,這么用能實(shí)現(xiàn),那代碼就這樣碼吧。大家都這么碼,這么碼也不錯(cuò),對(duì)吧。加油,年輕人!!!
/// <summary>/// 獲取登錄用戶/// </summary>/// <returns></returns>public Users CurrentUser{get{return ByteConvert.GetObject<Users>(HttpContext.Session.Get("CurrentUser"));}}總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core使用Session的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机硬件:关于CPU的12个硬核干货!
- 下一篇: WPF中直接打开网页方法总结