Asp.Net Core中Session使用

web程序中,Session是一个无法避开的点。

最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session。

新建的asp.net core的模板已经包含了Session的库,

如果没有的话,那就需要手动去Nuget搜索一下,安装就好了

使用的话,也很简单

services.AddSession();

然后use

 app.UseSession();

这样就可以在web程序中使用了

1.存入session

 HttpContext.Session.SetString("userid", "");

2.读取session

HttpContext.Session.GetString("userid")

我在使用的时候,遇到一个问题:登录成功->写入Session->重定向->session丢失->再次登录->写入Session->登录成功  

第一次登陆成功,我重定向到主页,但是会失败。session会丢失

于是我分析了一下浏览器请求,发现第一次登陆成功后,写入session,然后重定向,浏览器收到302状态的时候,根本没有来得及存入session所依赖的cookie,然后就开始跳转,跳转过去,session是读取不到的。

我的处理方法是放一个空白的html页面,加一段js代码,用js去跳转:登陆成功->写入session->返回html->通过html的jslocation.href重新跳转到需要跳转的页面->获取session成功

 


打赏

posted on 2018-03-29 14:02  快乐海盗  阅读(454)  评论(1编辑  收藏  举报