Blazor 如何管理用户会话?



Blazor 的新手 我不确定用户会话是如何工作的。

我正在尝试使用 Blazor Server Hosting (.NET Core 3.1( 制作一个网站。 我有一个服务来存储客户,如下所示:

public class AppData
{   
public Customer CurrentCustomer { get; set; }
public AppData()
{         
this.CurrentCustomer = new Customer() { IsWebConnected = false };
}
}

在启动时.cs我添加:

public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);
}

什么意思? 当设置了 CurrentCustomer 时(例如,使用登录页面(,当我在浏览器上启动时,我可以使用不同页面上的相关数据访问它。 但是当我在我的电脑上启动另一个浏览器时,我看到相同的用户集(具有相同的值(。它似乎是共享的。

我一直在处理旧的 ASP.NET Webform,我正在尝试做与会话(用户一个会话(相同的事情,但与 Blazor 的方式相同吗?

感谢您的帮助。

AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);

这将添加一个单一实例。是的,这是所有用户之间共享的。不涉及饼干。这类似于 WebForms 中的Application[]对象。

Session[]没有直接的对应物,但有很多解决方案。文档在此处列出了它们。

请注意,您应该尝试尽可能"无状态",因此请考虑在每次页面初始化时从 Db 获取数据。

相关内容

  • 没有找到相关文章

最新更新