ASP.NET Core使用Session
不知道各位伙伴在学习.NET Core过程中有没有发现,Session没法直接用的,和以前的.NET Framework框架相比,已经不再是简简单单的Session来调用了,这确实是个挺操蛋的问题,但是人家这么安排也有它的道理,让我们去更好的熟悉它的使用过程,其实Session的使用,相当于被它封装成了类似中间件这种独立的模块来使用,下面我们就来探究下,怎么.NET Core中使用Session:
同样的,我们需要在Startup.cs注入一下Session,一行代码轻松解决:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{//sessionapp.UseSession();}
这里需要注意啊,其余多余的代码已经被我我省略了,这里只探究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相关推荐
- Asp.Net Core中Session使用
web程序中,Session是一个无法避开的点. 最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session. 新建的asp.net core的模板已经包含了Session ...
- asp.net core webapi Session 内存缓存
Startup.cs文件中的ConfigureServices方法配置: #region Session内存缓存 services.Configure<CookiePolicyOptions&g ...
- ASP.NET Core学习之路03
本文章是我听B站杨中科的所做的笔记 杨中科B站视频链接:.NET 6教程,.Net Core 2022视频教程,杨中科主讲_哔哩哔哩_bilibili Identity框架入门 Authenticat ...
- ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理
本博文翻译自: https://dotnetcoretutorials.com/2017/10/16/owasp-top-10-asp-net-core-broken-authentication-s ...
- asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存
目录 Redis 介绍 asp.net core Session 介绍 Redis & Session 实例讲解 Session的使用 使用 Protobuf 给 Session添加扩展方法 ...
- ASP.NET Core 中简单Session登录校验
ASP.NET Core 中简单Session登录校验:从Session的配置添加.到请求过滤.再到页面操作.推荐相关阅读:ASP.NET 会话状态概述 ASP.NET Cookie 概述 ASP ...
- ASP.NET Core中间件实现分布式 Session(转载)
ASP.NET Core中间件实现分布式 Session 1. ASP.NET Core中间件详解 1.1. 中间件原理 1.1.1. 什么是中间件 1.1.2. 中间件执行过程 1.1.3. 中间件 ...
- java按需读取word文件_干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结...
我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章<.NET CORE与Spring Boot编写控制台程序应有 ...
- 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 ...
- ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范
原文:ASP.NET Core的身份认证框架IdentityServer4(4)- 支持的规范 IdentityServer实现以下规范: OpenID Connect OpenID Connect ...
最新文章
- P1051 谁拿了最多奖学金
- 1900万印度人疯抢6万份工作,加班至死,这才是真正的就业崩溃!
- # 2021华为软件精英挑战赛C/C++——build.sh/build_and_run.sh/CodeCraft_zip.sh注释
- 安装iis,php,mysql总结
- 九种破解Xp登录密码方法
- php lucene索引,用PHP调用Lucene包来实现全文检索_PHP教程
- Enterprise Solution 解决方案与源代码下载
- LOGO设计没有灵感?5种方法来寻找标志设计的灵感和想法
- 没有lrzsz,怎么传文件到服务器?
- eclipse内存设置,tomcat内存设置,查看内存大小
- Win10 重装系统备忘
- 无线信号的调制方式 OOK、ASK、FSK、GFSK
- Maxwell个人初学经验及资料分享
- 宇视云所有故障排查思维导图
- spoj COT COT2
- ips细胞再生视网膜研究进展
- linux网卡桥接模式无法上网
- java放大缩小_如何用Java实现图形的放大和缩小?
- StringBuffer的equals
- ctf MISC 简单套娃
热门文章
- C语言/C++中strcpy_s函数
- 条码打印软件中如何设置条形码下面的字符间距?
- 超好用的录屏软件 captura
- 用html写个人简历
- 自然语言处理简明教程——序言、第一章
- 微信撤回软件安卓版_微信阻止撤回app最新版-微信阻止撤回软件下载v1.0.3 安卓版-腾牛安卓网...
- SOA面向服务架构详解
- System x Windows Server驱动下载
- 计算机管理如何格式化u盘,技术编辑器会教您如何格式化U盘
- unity学习笔记-uniwebview3的使用以及一些补充(视频问题已解决)