Search code examples
asp.net-coreasp.net-core-identity

Unable to resolve service for type Microsoft.AspNetCore.Identity.RoleManager for ASP.Net Core 2.0


How do I inject RoleManager in ASP.Net Core 2.0?

I'm getting the following error:

Unable to resolve service for type Microsoft.AspNetCore.Identity.RoleManager for ASP.Net Core 2.0

I have the following code:

  // add identity
  var builder = services.AddIdentityCore<AppUser>(o =>
  {
    // configure identity options
    o.Password.RequireDigit = false;
    o.Password.RequireLowercase = false;
    o.Password.RequireUppercase = false;
    o.Password.RequireNonAlphanumeric = false;
    o.Password.RequiredLength = 6;
  });
  builder = new IdentityBuilder(builder.UserType, typeof(AppRole), builder.Services);
  builder.AddSignInManager<SignInManager<AppUser>>();

AppUser and AppRole are derived from IdentityUser and IdentityRole, respectively.


Solution

  • I'm not sure why you are using AddIdentityCore(). Have you tried the conventional AddIdentity():

    services.AddIdentity<AppUser, AppRole>(options =>
        {
            ... 
        });