gpt4 book ai didi

c# - ASP.NET Core 后台任务中的用户 session

转载 作者:行者123 更新时间:2023-12-05 06:07:28 24 4
gpt4 key购买 nike

我了解到 preferred ASP.NET-Core-way for background taskshosted service .

有什么方法可以传递(用户)session给这个后台 worker ?通常 session 是 HttpContext 的一部分,它在后台任务中不可用...

我知道我可以通过写入数据库来持久化数据,但我也想在内存中缓存一些数据。

最佳答案

如果这一切都发生在进程中,那么您应该能够直接将 ISession 对象传递给您的后台服务,并让它与用户的 session 交互,而无需用户的 HttpContext周围。

默认 session 实现使用 distributed cache持久化存储在 session 中的信息。然后,每个 session 对象仅与存储在用户 cookie 中的 session key 进行交互。当 session 对象 is being created ,没有传递对 HttpContext 的直接或间接引用。 session store itself也不以其他方式访问 HttpContext。分布式缓存本身也独立于上下文和 DI 服务范围。

所以至少在理论上,这应该可以正常工作。您可以使用 ISession 对象来修改 session ,下次用户使用他们的 session ID 发出请求时,更新的信息将在那里等待他们。

关于c# - ASP.NET Core 后台任务中的用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65403901/

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