gpt4 book ai didi

c# - 全局范围内的 .NET session 替代方案

转载 作者:行者123 更新时间:2023-11-30 13:51:05 25 4
gpt4 key购买 nike

快速提问:是否有一个“每个用户”的数据存储对象(类似于Session),我可以在全局范围内存储数据(类似于 >HttpRuntime.Cache)?几乎就像 SessionHttpRuntime.Cache 有了 child 一样。

完整背景:我有一个最初为单线程编写的 ASP.NET 网站。现在我更改了它,以便某些操作会产生一个后台线程,并且浏览器会轮询服务以获取状态更新。

我遇到的问题是某些数据被存储到 HttpContext.Session[] 对象(例如,成员身份验证 token )中。这些数据对每个用户都必须是唯一的,并且可以由后台线程访问。 session 对后台线程不可用。

我知道 HttpRuntime.Cache 但这需要微观管理来分割用户并在 session 过期的同时将其过期。另一方面,Session 会在我想要的正确时间自动过期,并且已经被 SqlMembershipProvider 之类的东西使用。

我的问题是,是否存在行为类似于 Session 但存在于全局范围内的东西?

最佳答案

我不认为您需要开箱即用的任何东西。不过,我会执行以下操作:

  1. 使用应用程序缓存
  2. 将 key 设为用户 ID 或唯一标识符
  3. 在值中为用户存储一个字典 或一些对象列表。使用它来存储您需要的所有数据。
  4. 如果您认为可能与用户唯一标识符(例如域等)发生冲突,请考虑在用户 ID 前添加一些内容
  5. 确保在类似于 session (例如滑动)的缓存数据上设置过期时间

关于c# - 全局范围内的 .NET session 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5108634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com