I had problems too trying to use a custom SignInManager and turns out to be really easy after all to implement. In Startup.cs, after the default implementation of services.Identity services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); You only need to inject into the built-in DI the following: services.AddScoped<SignInManager<MyApplicationUser>, MySignInManager>(); The default SignInManager is overwrited by the custom one.