ASP.NET CORE中配置和启用Session会话服务

配置会话状态

asp.net core创建的项目默认是没有配置Session会话服务的,如果直接使用HttpContext.Session设置Session,就会抛出以下异常:

为了解决这个问题,我们需要引入Microsoft.AspNetCore.Session 包,它包含提供用于管理会话状态的中间件。

若要启用这个会话中间件,Startup 必须包含:

任一 IDistributedCache 内存缓存。 IDistributedCache 实现用作会话后备存储。 有关详细信息,请参阅 ASP.NET Core 中的分布式缓存。
对 ConfigureServices 中 AddSession 的调用。
对 Configure 中 UseSession 的调用。

以下代码演示如何使用 IDistributedCache 的默认内存中实现设置内存中会话提供程序:

在ConfigureServices方法:

services.AddDistributedMemoryCache();//添加内存数据缓存服务
services.AddSession(options =>
{
     options.IdleTimeout = TimeSpan.FromSeconds(10);
     options.Cookie.HttpOnly = true;
     options.Cookie.IsEssential = true;
});

在Configure方法:
app.UseSession();

调用 UseSession 以前无法访问 HttpContext.Sessions
配置会话状态后,HttpContext.Session可以操作。

参考资料:
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/app-state?view=aspnetcore-3.1

posted @ 2020-06-28 17:22  qiFen9  阅读(731)  评论(0)    收藏  举报