You will need to create some another classes and interfaces:
public interface IApplicationUserStore : IUserStore<ApplicationUser, string>
{
}
public class ApplicationUserStore :
UserStore<ApplicationUser, ApplicationRole, Guid, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>,
IApplicationUserStore
{
public ApplicationUserStore()
: base(new ApplicationDbContext())
{
}
public ApplicationUserStore(ApplicationDbContext context)
: base(context)
{
}
}
And create class ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
public ApplicationDbContext()
: base("AuthenticationConnectionString")
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
...
}
then from your ApplicationUserManager you would be able to call
var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>()));
And this is the complete class ApplicationUserManager that receives IApplicationUserStore in the constructor:
public class ApplicationUserManager : UserManager<ApplicationUser, Guid>
{
public ApplicationUserManager(IApplicationUserStore store)
: base(store)
{
}
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new ApplicationUserStore(context.Get<ApplicationDbContext>())) { PasswordHasher = new CustomPasswordHasher() };
// Configure validation logic for passwords
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = 6,
RequireNonLetterOrDigit = false,
RequireDigit = true,
RequireLowercase = true,
RequireUppercase = false,
};
return manager;
}
}