首页 > 解决方案 > 从 MVC Core 中的数据库表中获取会话数据

问题描述

在我的 MVC Core 应用程序中,我使用会话来跟踪登录。这很好用,但是当我的 Web 应用程序空闲/重新启动时会出现问题,因为会话清除并且所有用户都被注销。我已经修改了我的应用程序,通过在 Startup方法中调用和设置services.AddDistributedSqlServerCache(options)&以及在方法中调用,将会话数据存储在数据库缓存表中。services.AddSession(options)ConfigureServicesapp.UseSession()Configure

我似乎做的一切都正确;当新客户端第一次设置会话值时,它将保存在缓存表中,并且何时Sesion.Get调用会话ExpiresAtTime表值更新。

那么,考虑到会话数据是保存到表中的,为什么重启时不被抓取呢?这不是 cookie 问题,cookie 过期值设置为 10 年,会话空闲超时值设置为 2 周。似乎会话数据只是通过 IIS 内存处理,但被保存到我的缓存数据库表中,我觉得这很奇怪。

标签: sessionasp.net-coreasp.net-core-mvc

解决方案


推荐阅读