2014-11-26 3 views
2

Identity 2.0을 사용하는 AuthenticationController에서 문제가 발생했습니다. 작업은 간단하지만 Ninject와 그 바인딩에 대해 이해할 수없는 것이 있습니다.Ninject : Binding Identity UserManager

UserStore와 DBContext에 UserManager를 바인딩하고 싶지만 어떻게해야하는지 알 수 없습니다. 또한 더 중요한 질문은 UserManager 및 UserStore에 대한 바인딩을 설정해야하는 범위입니다. 또한

, 내 AuthenticationController이 방법이 있습니다

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

나는 새로운 UserValidator를 만들고 (또는 생성자에서) 다른 방법이 메소드를 호출 할 수 있지만,이 바인딩 싶지 않아 메서드를 만들 때 내 UserManager를 사용합니다. Ninject로 어떻게 할 수 있습니까? 당신은 내가 새로운 사용자를 등록 할 때 만 사용 있기 때문에 UserValidator에 대해 별도의 방법으로 유지하는 것이 좋습니다 생각

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(); 

같은 것을 입력해야하므로

답변

3

UserManager, UserStore 및 DBContext는 실행 종속 체인을 만들 수 있습니다.

+0

이 코드는 UserManager에 대한 추가 DataContext를 생성합니다. –