Blazor Wasm 身份登录/注销事件
Posted
技术标签:
【中文标题】Blazor Wasm 身份登录/注销事件【英文标题】:Blazor Wasm Identity Login/Logout event 【发布时间】:2021-06-08 15:06:54 【问题描述】:在使用来自 Wasm 模板的标准身份的 .Net 5 Blazor WASM 应用程序中,我想在用户登录(或注销)时执行一些操作。我已经在 Authentication.razor 中尝试过 RemoteAuthenticatorView:
@page "/authentication/action"
@using Microsoft.AspNetCore.Components.WebAssembly.Authentication
<RemoteAuthenticatorView Action="@Action"
OnLogInSucceeded="OnLoginSucceeded"
OnLogOutSucceeded="OnLogoutSucceeded1"
/>
@code
[Parameter] public string Action get; set;
public async void OnLoginSucceeded()
// do something
public void OnLogoutSucceeded1()
// do something
而且,我尝试了一个组件(我真的想采取行动来合并一个购物篮):
AuthenticationStateProvider.AuthenticationStateChanged += OnAuthenticationStateChanged;
private async void OnAuthenticationStateChanged(Task<AuthenticationState> task)
var user = (await task).User;
Console.WriteLine(DateTime.Now.ToString("hh:mm:ss:fff") + " InitialDataLoader -> OnAuthenticationStateChanged -> IsUserAuthenticated: " + user.Identity.IsAuthenticated);
我在每个方法中都有断点,在我最终在 RemoteAuthenticatorView 和我的组件中都命中了登录断点之后(它有一段时间没有中断),它现在只中断一次。如果我注销 - 没有注销事件。如果我再次登录,即使作为另一个用户,我也不会遇到断点。
是否有一致的方法来生成或检测登录?
【问题讨论】:
【参考方案1】:结果它工作正常,只是断点不工作 - 不知道为什么不工作。我向每个事件添加了 Console.WriteLine 消息,并且所有事件都被正确命中。所以这两种技术都按预期工作。
【讨论】:
在初始化结束之前,断点在 Blazor 中不起作用...以上是关于Blazor Wasm 身份登录/注销事件的主要内容,如果未能解决你的问题,请参考以下文章
升级到 .net 6 时托管的 Blazor WASM 身份验证中断
如何在 Blazor WASM 中对当前经过身份验证的用户帐户信息执行 CRUD 操作?
使用 Blazor wasm Bearer Token 进行 SignalR 身份验证
未注册身份验证 AuthenticationStateProvider 的 Blazor Wasm 托管预渲染
IdentityServerBuilderConfigurationExtension 中的 Blazor WASM 托管身份验证空引用异常