【发布时间】:2024-01-21 04:09:02
【问题描述】:
我在带有 Identity 2 的 MVC 5 项目中使用 Ninject。
对于其余的数据上下文和使用它的控制器,我对依赖注入没有任何问题。
对于使用 Identity 2 模型的帐户控制器,我在尝试登录时得到 null UserManager:
public class AccountController : Controller
{
private ApplicationUserManager _userManager;
public AccountController()
{
}
public AccountController(ApplicationUserManager userManager)
{
UserManager = userManager;
}
public ApplicationUserManager UserManager {
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
注入所需依赖项的正确方法是什么?我没有创建自定义 UserManager,它是开箱即用的模型,ApplicationUserManager 是在 App_Start 下的 IdentityConfig.cs 中定义的。
附带说明:我正在使用 Ninject 的约定扩展:
private static void RegisterServices(IKernel kernel)
{
kernel.Bind(
x => x.FromThisAssembly()
.SelectAllClasses()
.BindAllInterfaces()
);
谢谢。
【问题讨论】:
-
这个question and answer 可能会有所帮助
-
实际上并没有什么问题,我刚刚注入了与 Identity 相关的 DbContext,一切似乎都运行良好。因为现在 Identity 有更多选择,我有点迷路了,一直在寻找错误的地方,但我仍然希望看到该主题的专家为 Ninject 和 Identity 模型的使用写一个小教程。
-
@Bogac 你有想过这个吗?我遇到了同样的问题。我什至在这里为它提供了赏金*.com/questions/36239743/…
-
@Bagzli 已经很久了,坦率地说我不记得了,需要检查我使用它的项目才能给出答案。
标签: asp.net-mvc asp.net-mvc-5 ninject.web.mvc asp.net-identity-2 asp.net-mvc-controller