.NET CORE 随处可使用存放在内存中的 Session + 随处可使用Cookie

1. NUGET包引用 Microsoft.AspNetCore.Session 
2. Startup.cs中的相应方法加入些代码:
       //注册服务
        public void ConfigureServices(IServiceCollection services)
        {
            ............................................
            services.AddSession();
            ............................................
        }

       //添加
       public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {          
            ............................................
            app.UseSession(); 
            ............................................
        }

3. 以下是控制器中使用SESSION的代码,记得要先引用那个命名空间:

using Microsoft.AspNetCore.Http;    //安装1的包后,在类中引用 这个命名空间

//赋值
HttpContext.Session.SetString("TestA","123456");
//取值
var aa = HttpContext.Session.GetString("TestA");

 

4. 那如果还想要用session保存对象数据结构咋整?那就用This来扩展方法咯

public static class SessionObject
    {
        public static void SetObject<T>(this ISession session, string key, T value)
        {
            session.SetString(key, JsonConvert.SerializeObject(value));
        }

        public static T GetObject<T>(this ISession session, string key)
        {
            var value = session.GetString(key);
            return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
        }
    }

 

最后.这个自己的HttpContext,还能提供cookie哦. GlobalHttpContext.Current.Response.Cookies

另注意,目前只能在Controller中使用,要在其他类中使用Session,需要实例化IHttpContextAccessor,或者传入已实例化的IHttpContextAccessor(比如从Controller中传过去)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值