Blazor Web程序集中的会话变量由什么替代



因此,在.Net web表单项目中,我只需使用会话变量就可以在不同的页面上设置和获取它们。在Blazor Web Assembly(使用核心托管(中,正确的方法是什么?即用户登录时,他们的ID、电子邮件、名字等都会被存储起来,然后需要在其他页面中访问。

在.Net web表单项目中,我只需使用会话变量

您的Wasm应用程序是一个常规的C#应用程序,因此您可以使用大多数正常的存储机制。我会远离静态,但您可以使用自己的SessionStateService。只是一堆财产。将其作为单例注入或将其用作级联值。

但是旧的会话数据存储在服务器端。这意味着,只要用户使用同一应用程序打开第二个选项卡,Blazor-wasm解决方案就会有细微的差异。每个选项卡都运行自己的应用程序实例,因此您的数据将是该选项卡的本地数据。没有共享。

当您确实想在选项卡之间共享时,请使用JavaScripts本地存储(持久化(或在API服务器上创建一个端点(持久化取决于您(。

他们的ID,电子邮件,名字

这些最好作为索赔存储在JWT中。尤其是当您想要将某些(服务器端(授权或逻辑建立在这些值的基础上时。

您使用Scoped DI服务来维护状态,并将其注入到需要使用或添加/更新信息的任何组件中。

参见Ms Docs-https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/dependency-injection?view=aspnetcore-6.0

相关内容

  • 没有找到相关文章

最新更新