在Blazor中,可以使用AuthenticationStateProvider来检查当前用户是否已登录。可以在主页面中使用这个AuthenticationStateProvider来检查用户是否已经验证。如果用户未经身份验证,则可以使用NavigationManager将用户重定向到登录页面。在以下示例中,NavigationManager和AuthenticationStateProvider都是在Blazor页面中注入的。
@page "/"
@inject NavigationManager NavigationManager
@inject AuthenticationStateProvider AuthenticationStateProvider
@if (!(await AuthenticationStateProvider.GetAuthenticationStateAsync()).User.Identity.IsAuthenticated)
{
@code {
protected override void OnInitialized()
{
NavigationManager.NavigateTo("/login");
}
}
}
上述代码会在Blazor页面初始化时检查当前用户是否已经被验证。如果用户未经身份验证,则会使用NavigationManager将用户重定向到/login页面。