我正在尝试注入RoleManager
控制器,但出现此错误:
InvalidOperationException:尝试激活“ StoreProject.Controllers.ProductController”时,无法解析类型为“ Microsoft.AspNetCore.Identity.RoleManager`1 [StoreProject.Models.User]”的服务。
我的Startup
代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddMemoryCache();
services.AddSession();
services.AddTransient<IStoreRepository, StoreRepository>();
services.AddIdentity<User,IdentityRole<long>>(options =>
{
options.User.RequireUniqueEmail = true;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
}).AddEntityFrameworkStores<StoreContext>();
services.AddDbContext<StoreContext>(options =>
options.UseSqlServer("Server=LAPTOP-14M18EPM\\RONSQL;Database=projectDB;Trusted_Connection=True"));
}
我的控制器:
public class AccountController : Controller
{
private readonly SignInManager<User> _signInManager;
private readonly UserManager<User> _userManager;
private readonly RoleManager<User> _roleManager;
IStoreRepository _repository;
private readonly IHostingEnvironment _env;
public AccountController(SignInManager<User> signInManager,
UserManager<User> userManager,
RoleManager<User> roleManager,
IStoreRepository storeRepository,
IHostingEnvironment env)
{
_signInManager = signInManager;
_userManager = userManager;
_roleManager = roleManager;
_repository = storeRepository;
_env = env;
}
}
问题出在哪儿?
您的问题很可能是这样的:
RoleManager<User> roleManager
应该是这样的:
RoleManager<IdentityRole<long>> roleManager
基本上,您的问题是类型不匹配,AddIdentity()正在将此类型RoleManager <IdentityRole <long>>注册到依赖项注入提供程序,并且您要在控制器中请求其他类型的RoleManager <User>。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句