【发布时间】:2021-02-02 11:20:13
【问题描述】:
UserManager.GetUserAsync(authState.User) 抛出异常,除非 UserManager 已经被调用。
例如;
这会在await UserManager.GetUserAsync(authState.User) 上抛出一个NullReferenceException;
@ page "/"
@inject UserManager<ApplicationUser> UserManager
<AuthorizeView>
...
</AuthorizeView>
@code{
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask { get; set; }
protected async override Task OnInitializedAsync()
{
var authState = await authenticationStateTask;
var currentUser = await UserManager.GetUserAsync(authState.User); // exception here
}
}
但这工作正常;
@ page "/"
@inject UserManager<ApplicationUser> UserManager
<AuthorizeView>
...
</AuthorizeView>
@code{
[CascadingParameter]
private Task<AuthenticationState> authenticationStateTask { get; set; }
protected async override Task OnInitializedAsync()
{
var allUsers = UserManager.Users.ToList(); // hack
var authState = await authenticationStateTask;
var currentUser = await UserManager.GetUserAsync(authState.User); // this is now working OK
}
}
为什么我需要触发UserManager才能使用GetUsersAsync方法?
【问题讨论】:
标签: asp.net-identity blazor blazor-server-side