我对 Blazor 比较陌生,并且在作用域状态存储(使用 services.AddScoped(...) 创建)方面遇到问题。我需要的存储是,简单地说,每个用户,并持续到用户关闭选项卡或浏览器,但也可以在检测到不活动时删除。
在我看来,重新创建范围服务很容易丢失。通过记录 GetHashCode 的输出,我至少看到了作用域对象的三个不同实例——而不仅仅是一个,正如所希望的那样。该应用程序具有 Saml2 身份验证、一个执行重定向等的控制器 - AddScoped 对象似乎在这个非平凡的环境中被多次重新创建。
我非常倾向于忘记这一切,并通过现有的 Web API 使用简单的数据库访问。那么问题来了,在整个交互时间内,在哪里存储用户的唯一 ID! - 这对于获取存储在后端的用户数据至关重要。由于预渲染的问题,本地浏览器存储似乎很困难……像 Fluxor 这样的第三方东西值得考虑吗?
用完想法(和时间!)。感谢您对其他可靠可能性的任何见解。