• 2019年6月22日

.net core中使用Session保存及传递数据

本文介绍的是.Net Core中如何启用Session以及解决Session无法正常保存的问题,属于入门级经验。供各位参考!

网站开发时,我们会用到Session,.Net Core 2.2默认是无法直接使用Session,需要进行一定的设置,首先是修改Startup.cs文件:

一、ConfigureServices函数中添加:

services.AddSession();

二、Configure函数中添加

app.UseSession();

到这里算是开启了Session功能

然而,仅能在当前页面使用,无法跨页使用。

表现为:Login页面已经通过Session.SetString保存了数据,调试模式下也确实能看到数据已经保存到HttpContext.Session中了,但是转跳到其他需要验证Session页面就发现HttpContext.Session中并没有任何数据。

原因是在Startup.cs文件中的ConfigureServices配置中默认设置如下:

options.CheckConsentNeeded = context => true; 

当前设置标示在用户访问页面时提示类似“本站需要保存Cookies,是否同意”,只有用户点同意了才可以用Cookies,否则就不能正常使用Cookies,而Session是以来Cookies的,因此导致Session也会受影响。

当前设置状态下,我们还需要完善_CookieConsentPartial.cshtml的代码,因为系统生成的代码不完整。具体路径及默认代码如下图:

如果不需要cookie提示,我们只需要把它修改为如下:

options.CheckConsentNeeded = context => false;

这样子就解决了session无法正常保存和使用的问题。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注