除了blazor中的当前页面外,我无法从其他页面访问protectedSessionStore



如果我不离开我登录的页面,我无论如何都会交出会话。然而,尽管我在同一个浏览器中打开了一个新页面,但我无法访问它。知道为什么会发生这种情况吗?

关键代码片段:

Startup.cs>配置服务:

services.AddRazorPages();
services.AddServerSideBlazor();
services.AddAuthorization();
services.AddAuthentication();
services.AddScoped<AuthenticationStateProvider, UserService>();
services.AddHttpContextAccessor();
services.AddHttpClient();

用户服务:

public async Task<UserDto> GetUserSession()
{
var localUserJson = await protectedSessionStore.GetAsync<string>(USER_SESSION_OBJECT_KEY);
}

login.rarzor:

protected override async void OnAfterRender(bool firstRender)
{
if (firstRender)
{
if (await ServiceProvider.Get<UserService>().GetUserSession() != null)
{
NavigationManager.NavigateTo("/Dashboard");
}
}
}

尽管我在同一浏览器中打开了一个新页面,但我无法访问它。

这是预期的行为。

根据文件:

  • sessionStorage的作用域为浏览器选项卡。如果用户重新加载该选项卡,状态将持续。如果用户关闭选项卡或浏览器,则状态将丢失。如果用户打开多个浏览器选项卡,则每个选项卡都有自己独立的数据版本

听起来你想要LocalStorage:

  • localStorage的作用域是浏览器的窗口。如果用户重新加载页面或关闭并重新打开浏览器,则该状态将持续存在。如果用户打开多个浏览器选项卡,则状态在这些选项卡之间共享。在明确清除之前,数据一直保存在本地存储中

相关内容

  • 没有找到相关文章

最新更新