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