Asp.net 核心中的会话和应用程序变量,以防我们使用 JWT 令牌(因此没有基于 cookie 的会话)
Posted
技术标签:
【中文标题】Asp.net 核心中的会话和应用程序变量,以防我们使用 JWT 令牌(因此没有基于 cookie 的会话)【英文标题】:Session and Application variables in Asp.net core in case we use JWT tokens (So no cookie based sessions) 【发布时间】:2018-03-07 18:11:15 【问题描述】:我们正在使用从 IdentityServer 生成的 JWT 令牌身份验证。我想知道在调用各种控制器操作时执行会话变量(和应用程序范围变量)的相同功能的正确方法是什么。例如,我应该将这些变量存储在 InMemory 缓存中吗?
例如:我正在将文件上传到控制器动作,我需要一些其他控制器动作来报告该文件上传了多少,因此这两个动作需要有一个公共变量来报告该文件上传进度。 ..
谢谢...
【问题讨论】:
【参考方案1】:Application Session 和 Authentication Session 是不同的概念。应用程序会话对于这种情况仍然是可行的。但是,您需要确保在上传请求之前在响应中发送会话 cookie,以便上传和状态请求可以正确关联。您还必须定期提交会话状态,以便状态请求可以读取它,它们不会共享相同数据的实时副本。
或者您使用内存缓存并给每个上传一个唯一的 id(在上传之前)。这与会话的工作方式几乎相同。
【讨论】:
以上是关于Asp.net 核心中的会话和应用程序变量,以防我们使用 JWT 令牌(因此没有基于 cookie 的会话)的主要内容,如果未能解决你的问题,请参考以下文章
如何将从“选择”查询中获得的值存储到 ASP.net 中的会话变量中
在 ASP.NET 中的 Session.Clear() 和 Session.Abandon() 之后会话变量未清除