如何将 UserManager 注入 ASP.NET Core 2.0 中的另一个服务
Posted
技术标签:
【中文标题】如何将 UserManager 注入 ASP.NET Core 2.0 中的另一个服务【英文标题】:How to inject UserManager to another service in ASP.NET Core 2.0 【发布时间】:2018-11-20 02:43:30 【问题描述】:我创建了一个使用用户管理员身份的服务
public class UserManagerService : IUserManagerService
private readonly UserManager<IdentityUser> userManager;
public UserManagerService(UserManager<IdentityUser> userManager)
this.userManager = userManager;
我将这一行添加到我的 startup.cs 中
services.AddTransient<IUserStore<IdentityUser>, UserStore<IdentityUser>>();
services.AddTransient<UserManager<IdentityUser>>();
但我有这个错误:
InvalidOperationException:无法解析类型“Microsoft.AspNet.Identity.UserManager”的服务
有谁知道我们如何将用户管理器注入另一个服务?
【问题讨论】:
【参考方案1】:我假设您看到此错误是因为您尚未注册所有用户管理器依赖项。 https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.usermanager-1?view=aspnetcore-2.1看构造函数,看看构造UserManager需要注册什么。或者,您可以通过简单的扩展注册所有必需的身份服务。
services.AddIdentity<IdentityUser, IdentityRole>()
【讨论】:
以上是关于如何将 UserManager 注入 ASP.NET Core 2.0 中的另一个服务的主要内容,如果未能解决你的问题,请参考以下文章
将自定义 UserManager 注入 Controller Net Core 2.1
如何将我自己的类注入到 ASP.NET MVC Core 的控制器中?
ASP.NET Core 标识不注入 UserManager<ApplicationUser>