【问题标题】:Getting error while trying to inject RoleManager into ASP.NET Core 2.2 controller尝试将 RoleManager 注入 ASP.NET Core 2.2 控制器时出错
【发布时间】:2019-12-07 06:52:59
【问题描述】:

我正在尝试将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;
    }
}

问题出在哪里?

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

    你的问题很可能是这样的:

    RoleManager<User> roleManager
    

    应该是这样的:

    RoleManager<IdentityRole<long>> roleManager
    

    基本上,您的问题是类型不匹配,AddIdentity() 正在将此类型 RoleManager > 注册到依赖注入提供程序,并且您要求控制器中的不同类型 RoleManager

    【讨论】:

      猜你喜欢
      • 2019-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      相关资源
      最近更新 更多