不知道各位伙伴在学习.NET Core过程中有没有发现,Session没法直接用的,和以前的.NET Framework框架相比,已经不再是简简单单的Session来调用了,这确实是个挺操蛋的问题,但是人家这么安排也有它的道理,让我们去更好的熟悉它的使用过程,其实Session的使用,相当于被它封装成了类似中间件这种独立的模块来使用,下面我们就来探究下,怎么.NET Core中使用Session:
同样的,我们需要在Startup.cs注入一下Session,一行代码轻松解决:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{//sessionapp.UseSession();}

这里需要注意啊,其余多余的代码已经被我我省略了,这里只探究Session的使用,你原来配置好的代码,千万别删,注入Session确实就是这么简单,可是使用起来可不是这么简单哦!简单的StringInt来记住和从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难道就只会用来记住stringInt,简单的类型?显然是不可能的,.NET CoreSession比较烦人的是,当我使用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相关推荐

  1. Asp.Net Core中Session使用

    web程序中,Session是一个无法避开的点. 最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session. 新建的asp.net core的模板已经包含了Session ...

  2. asp.net core webapi Session 内存缓存

    Startup.cs文件中的ConfigureServices方法配置: #region Session内存缓存 services.Configure<CookiePolicyOptions&g ...

  3. ASP.NET Core学习之路03

    本文章是我听B站杨中科的所做的笔记 杨中科B站视频链接:.NET 6教程,.Net Core 2022视频教程,杨中科主讲_哔哩哔哩_bilibili Identity框架入门 Authenticat ...

  4. ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理

    本博文翻译自: https://dotnetcoretutorials.com/2017/10/16/owasp-top-10-asp-net-core-broken-authentication-s ...

  5. asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存

    目录 Redis 介绍 asp.net core Session 介绍 Redis & Session 实例讲解 Session的使用 使用 Protobuf 给 Session添加扩展方法 ...

  6. ASP.NET Core 中简单Session登录校验

    ASP.NET Core 中简单Session登录校验:从Session的配置添加.到请求过滤.再到页面操作.推荐相关阅读:ASP.NET 会话状态概述  ASP.NET Cookie 概述  ASP ...

  7. ASP.NET Core中间件实现分布式 Session(转载)

    ASP.NET Core中间件实现分布式 Session 1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件 ...

  8. java按需读取word文件_干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结...

    我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章<.NET CORE与Spring Boot编写控制台程序应有 ...

  9. 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】

    索引: 目录索引 Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Ch ...

  10. ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范

    原文:ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范 IdentityServer实现以下规范: OpenID Connect OpenID Connect ...

最新文章

  1. P1051 谁拿了最多奖学金
  2. 1900万印度人疯抢6万份工作,加班至死,这才是真正的就业崩溃!
  3. # 2021华为软件精英挑战赛C/C++——build.sh/build_and_run.sh/CodeCraft_zip.sh注释
  4. 安装iis,php,mysql总结
  5. 九种破解Xp登录密码方法
  6. php lucene索引,用PHP调用Lucene包来实现全文检索_PHP教程
  7. Enterprise Solution 解决方案与源代码下载
  8. LOGO设计没有灵感?5种方法来寻找标志设计的灵感和想法
  9. 没有lrzsz,怎么传文件到服务器?
  10. eclipse内存设置,tomcat内存设置,查看内存大小
  11. Win10 重装系统备忘
  12. 无线信号的调制方式 OOK、ASK、FSK、GFSK
  13. Maxwell个人初学经验及资料分享
  14. 宇视云所有故障排查思维导图
  15. spoj COT COT2
  16. ips细胞再生视网膜研究进展
  17. linux网卡桥接模式无法上网
  18. java放大缩小_如何用Java实现图形的放大和缩小?
  19. StringBuffer的equals
  20. ctf MISC 简单套娃

热门文章

  1. C语言/C++中strcpy_s函数
  2. 条码打印软件中如何设置条形码下面的字符间距?
  3. 超好用的录屏软件 captura
  4. 用html写个人简历
  5. 自然语言处理简明教程——序言、第一章
  6. 微信撤回软件安卓版_微信阻止撤回app最新版-微信阻止撤回软件下载v1.0.3 安卓版-腾牛安卓网...
  7. SOA面向服务架构详解
  8. System x Windows Server驱动下载
  9. 计算机管理如何格式化u盘,技术编辑器会教您如何格式化U盘
  10. unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)