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 应用程序吗?
我正在使用 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 应用程序吗?