Я пытаюсь выяснить, как вводить UserManager и SignInManager. Я установил Ninject в своем приложении, и я использую его следующим образом:
Пожалуйста, рассмотрите это как совершенно новый проект. Inside Startup.cs У меня есть следующее:
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
app.UseNinjectMiddleware(CreateKernel);
}
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
return kernel;
}
}
теперь, если бы я должен был создать класс Dummy и попытаться ввести его на основе его интерфейса, который работает. Я протестировал его. То, что я пытаюсь понять, - это как я теперь вычеркнуть из Startup.Auth.cs и ввести его. Не имея интерфейсов, на которые я могу положиться, я не уверен, как это делается:
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
Чтобы уточнить еще раз, мой вопрос: как мне создать ApplicationUserManager и ApplicationSignInManager и ввести его в параметры моего контроллера. Вот контроллер, который я пытаюсь ввести в это:
public AccountController(ApplicationUserManager userManager, ApplicationSignInManager signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
EDIT:
Вот что я пробовал:
private static IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
kernel.Bind<IUserStore<ApplicationUser>>().To<UserStore<ApplicationUser>>();
kernel.Bind<UserManager<ApplicationUser>>().ToSelf();
return kernel;
}
Но с этим я получаю нулевую ошибку ссылки