如果我们使用JWT令牌(因此没有基于cookie的会话),Asp.net核心中的会话和应用程序变量
问题描述:
我们使用由IdentityServer生成的JWT令牌认证。我想知道在调用各种控制器操作时,执行会话变量(和应用程序范围变量)的相同功能的正确方式是什么。我应该将这些变量存储在InMemory缓存中吗?如果我们使用JWT令牌(因此没有基于cookie的会话),Asp.net核心中的会话和应用程序变量
例如:我正在将文件上传到控制器操作,我需要一些其他控制器操作来报告上传了多少文件,因此这两个操作需要有一个公共变量来报告文件上传进度...
谢谢...
答
应用程序会话和身份验证会话是不同的概念。应用程序会话对于这种情况仍然可行。但是,您需要确保在上传请求之前发送响应cookie,以便上传和状态请求可以正确关联。您还必须定期提交会话状态,以便状态请求可以读取它们,但它们不共享相同数据的实时副本。
或者你使用内存缓存,并给每个上传一个唯一的ID(在上传之前)。这与会话的工作方式几乎完全相同。