Blazor 如何管理用户 Session?
How Blazor manage user Session?
Blazor 新手我不确定了解用户会话是如何工作的。
我正在尝试使用 Blazor 服务器托管 (.NET Core 3.1) 创建一个网站。
我有这样的服务来存储客户:
public class AppData
{
public Customer CurrentCustomer { get; set; }
public AppData()
{
this.CurrentCustomer = new Customer() { IsWebConnected = false };
}
}
在 Startup.cs 我添加:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);
}
这是什么意思?
设置 CurrentCustomer 后(例如登录页面),我可以在浏览器上启动时使用不同页面上的相关数据访问它。
但是当我在我的电脑上启动另一个浏览器时,我看到了相同的用户集(具有相同的值)。好像是共享的
我一直在处理旧的 ASP.NET Webform,我正在尝试做与 Session(用户一个会话)相同的事情,但它与 Blazor 的方式相同吗?
感谢您的帮助。
AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);
这将添加一个 Singleton 实例。是的,这是所有用户共享的。不涉及 Cookie。这类似于 WebForms 中的 Application[]
对象。
Session[]
没有直接的对应,但是有很多解法。文档 list them here.
请注意,您应该尽可能 'stateless',因此请考虑在每次页面初始化时从 Db 中获取数据。
Blazor 新手我不确定了解用户会话是如何工作的。
我正在尝试使用 Blazor 服务器托管 (.NET Core 3.1) 创建一个网站。 我有这样的服务来存储客户:
public class AppData
{
public Customer CurrentCustomer { get; set; }
public AppData()
{
this.CurrentCustomer = new Customer() { IsWebConnected = false };
}
}
在 Startup.cs 我添加:
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddServerSideBlazor();
AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);
}
这是什么意思? 设置 CurrentCustomer 后(例如登录页面),我可以在浏览器上启动时使用不同页面上的相关数据访问它。 但是当我在我的电脑上启动另一个浏览器时,我看到了相同的用户集(具有相同的值)。好像是共享的
我一直在处理旧的 ASP.NET Webform,我正在尝试做与 Session(用户一个会话)相同的事情,但它与 Blazor 的方式相同吗?
感谢您的帮助。
AppData data = new AppData();
services.AddSingleton<Service.AppData>(data);
这将添加一个 Singleton 实例。是的,这是所有用户共享的。不涉及 Cookie。这类似于 WebForms 中的 Application[]
对象。
Session[]
没有直接的对应,但是有很多解法。文档 list them here.
请注意,您应该尽可能 'stateless',因此请考虑在每次页面初始化时从 Db 中获取数据。