我的AuthenticationController遇到了一个问题,我使用了Identity 2.0。这个任务很简单,但是有些东西我无法理解尼尼莫和它的绑定。
我想将UserManager绑定到UserStore和DBContext,但是我想不出怎么做。另外,更重要的问题是,我必须在哪个范围内为UserManager和UserStore设置绑定。
而且,在我的AuthenticationController中有这样的方法:
private void UserValidator(UserManager<User> usermanager)
{
usermanager.UserValidator = new UserValidator<User>(usermanager)
{
AllowOnlyAlphanumericUserNames = true
};
}我不希望创建一个新的UserValidator并在其他方法(或构造函数中)中调用该方法,而是在创建该方法时将其与我的UserManager绑定。我怎么能用尼尼特做这件事?
发布于 2014-12-01 07:28:02
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保留单独的方法,因为它只在注册新用户时使用。
https://stackoverflow.com/questions/27144618
复制相似问题