【发布时间】:2021-08-21 10:17:58
【问题描述】:
我想在 blazor 服务器端页面中使用 asp.net Usermanager 来获取用户的角色
为了实现这一点,我必须使用 UserManager,但如果我尝试使用 [Inject],当我在 startup.cs 中执行 services.Addxx 时会出现错误
在尝试激活“Microsoft.AspNetCore.Identity.UserManager'1[Data.ApplicationDbContext]”时,无法解析“Microsoft.AspNetCore.Identity.IUserStore'1[Data.ApplicationDbContext]”类型的服务。
否则,如果我尝试在构造函数中使用,我会收到此错误:
错误 CS7036 没有给出与“InvoiceListBase.InvoiceListBase(UserManager)”的所需形式参数“userManager”相对应的参数
[CascadingParameter] Task<AuthenticationState> AuthenticationStateTask { get; set; }
private readonly UserManager<ApplicationDbContext> _userManager;
public IList<String> Roles { get; set; }
public InvoiceListBase(UserManager<ApplicationDbContext> userManager)
{
_userManager = userManager;
}
protected override async Task OnInitializedAsync()
{
var authstate = await AuthenticationStateTask;
var user = await _userManager.GetUserAsync(authstate.User);
Roles = await _userManager.GetRolesAsync(user);
}
谢谢
【问题讨论】:
标签: asp.net-identity blazor blazor-server-side