С выпуском MVC 5 появляются биты Asp.Net.Identity, включая UserManager. Мгновенное действие может стать беспорядочным, и я пытаюсь добавить его с настройками контроллера Autofac.Как подключить экземпляр UserManager ASP.NET MVC 5 с помощью Autofac?
конструктор контроллера
public LoginController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
вручную создать новый экземпляр:
var controller = new LoginController(UserManager<ApplicationUser>(new ApplicationUserStore<ApplicationUser>(new MyDbContext())));
ApplicationUserStore класс/конструктор:
public class ApplicationUserStore<TUser> : IUserLoginStore<TUser>, IUserStore<TUser>, IDisposable where TUser : ApplicationUser
public ApplicationUserStore(IMyDbContext context)
{
Context = context;
}
У меня есть новый для контекста БД работает корректно:
builder.RegisterType<MyDbContext>().As<IMyDbContext>();
Какая будет подпись регистрации для LoginController?
Хорошо догадка! Я обновил вопрос, включив определение класса ApplicationUserStore, поскольку он реализует больше, чем IUserStore. Но для этого случая, основываясь на регистрации Autofac на то, что он реализует IUserStore, достаточно хорошо, я думаю. Благодарю. – RyanW
Правильно, он реализует IUserRoleStore, IUserPasswordStore и т. Д., Но UserManager нуждается только в IUserStore в качестве аргумента. Затем он пытается обнаружить поддержку для других интерфейсов внутри компании. – danludwig