В настоящее время я работаю над реализацией новой аутентификации ASP.NET MVC 5 в своем приложении. Однако при использовании Unity в качестве IoC я не могу использовать какую-либо часть AccountController, потому что мне дана ошибка:
Тип IUserStore`1 не имеет доступного конструктора.
Это моя заданная установка единства, которая вызывается в global.asax
public class DependencyConfig
{
public static void Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
container.RegisterType<IEmployeeRepository, EmployeeRepository>();
container.RegisterType<ITeamRepository, TeamRepository>();
container.RegisterType<ICompanyRepository, CompanyRepository>();
return container;
}
}
И вот конструкторы по умолчанию для нового AccountController.cs
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new BusinessTrackerUsersContext())))
{
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
И вот элементы, вызываемые в конструкторах AccountController. Это значения по умолчанию с новыми именами.
public class BusinessTrackerUsersContext : IdentityDbContext<ApplicationUser>
{
public BusinessTrackerUsersContext()
: base("DefaultConnection")
{
}
}
public class ApplicationUser : IdentityUser
{
}
Любая помощь будет широко оценена!