这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程。
由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我们希望服务器保存我们的一些数据,方便下次请求(比如网站的账户登录信息,等等)。如果要保存这些发送中的数据,就要用到会话技术(Cookie技术本节不涉及),服务器会将每个浏览器的单独标识,将每个浏览器需要保存的数据,保存下来,当下次需要这些保存的数据,就可以取出来用。
正式点说,会话技术(Session)服务器端保存浏览器请求数据的一项技术,数据是以键值对的形式保存到服务器内存中,可以解决无状态协议带来的弊端,减少每次请求的数据量,提高了性能。
接下来,了解一下,如何在ASP.NetCore中配置使用会话技术
首先需要先配置一下,在startup文件中配置一下Session服务,然后添加Session中间件,需添加在路由中间件之前
//启用内存缓存(该步骤需在AddSession()调用前使用)
services.AddDistributedMemoryCache();//启用session之前必须先添加内存
services.AddSession(options =>
{
options.Cookie.Name = ".AdventureWorks.Session";
options.IdleTimeout = TimeSpan.FromSeconds(2000);//设置session的过期时间
options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
});
app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseSession();//添加会话中间件 app.UseRouting();//路由中间件 app.UseAuthorization();
配置好了以后,通过Http上下文对象就可以使用了。要引用如下命名空间,需要其中的Session对象的支持。
using Microsoft.AspNetCore.Http;
写入数据的方法有三种:
Set是写入byte[] ,后两者见名知意,对应的获取数据的方法也有三种
这是我的个人公众号,最新的文章都在此公众号发布