gpt4 book ai didi

c# - Ninject:绑定(bind)身份 UserManager

转载 作者:行者123 更新时间:2023-11-30 20:46:20 24 4
gpt4 key购买 nike

我的 AuthenticationController 遇到了问题,为此我使用了 Identity 2.0。任务很简单,但关于 Ninject 及其绑定(bind),我有些不明白。

我想将 UserManager 绑定(bind)到 UserStore 和 DBContext,但我不知道该怎么做。此外,更重要的问题是我必须在哪个范围内设置 UserManager 和 UserStore 的绑定(bind)。

另外,我的 AuthenticationController 中有这个方法:

private void UserValidator(UserManager<User> usermanager)
{
usermanager.UserValidator = new UserValidator<User>(usermanager)
{
AllowOnlyAlphanumericUserNames = true
};
}

我不想创建一个新的 UserValidator 并在其他方法(或构造函数)中调用此方法,而是在创建此方法时将其与我的 UserManager 绑定(bind)。我如何使用 Ninject 做到这一点?

最佳答案

UserManager、UserStore 和 DBContext 正在创建依赖链,因此您必须输入类似的内容

kernel.Bind<IDBContext>().To<DBContext>().InRequestScope(); //It's good practice to use interface
kernel.Bind<DBContext>().ToSelf().InRequestScope(); //You can also do it this way
kernel.Bind<IUserStore<User>>().To<UserStore<User>>()
.InRequestScope()
.WithConstructorArgument("context", kernel.Get<IDBContext>());
kernel.Bind<UserManager<User>>().ToSelf()
.InRequestScope();

我认为最好为 UserValidator 保留单独的方法,因为它仅在注册新用户时使用。

关于c# - Ninject:绑定(bind)身份 UserManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27144618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com