Blazor 导航管理器/身份验证

Blazor Navigation Manager / Authentication

我正在使用 Blazor 身份验证,并且搭建了登录页面的脚手架。当用户未通过身份验证时,我希望在布局页面上重定向到它,但不幸的是它不起作用。

这是我的代码:

[Inject] private NavigationManager nav { get; set; }
    protected override async Task OnInitializedAsync()
    {
        var authState = await auth.GetAuthenticationStateAsync();
        var user = authState.User;
        if (!user.Identity.IsAuthenticated)
        {
            nav.NavigateTo("/Identity/Account/Login");
        }
    }

实际情况是 Blazor 认为页面不存在并呈现 NotFound:<p>Sorry, there's nothing at this address.</p>.

也就是说;没有做任何其他事情,当我刷新页面时,它实际上打开了登录页面。这对我来说没有意义。

任何人都可以帮助我了解这里发生的事情。

此致,

克里斯

你应该使用authorize page attribute。如果将它添加到页面,blazor 框架将重定向到登录页面。

它是 Blazor WASM 应用程序吗?