ASP.NET Identity를 기존의 (오히려 복잡한) 데이터베이스 모델에 매핑하는 사용자 지정 UserStore를 구현하려고합니다. 데이터베이스에는 사용자 데이터를 저장하는 데 사용하려는 기존 테이블 '연락처'가 있습니다. 이 테이블에는 int identity (1,1) 기본 키가 있습니다. 그래서 저는 IUser를 구현하는 ContactUser라는 클래스와 IUserStore를 구현하는 ContactUserStore라는 클래스를 만들었습니다. 이제 기본 로그인이 작동합니다.신원 키가있는 ASP.NET ID 사용자 지정 UserStore
그러나 새로운 사용자 등록을 할 수 없습니다. 내가하려고 할 때 :
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
그것은 userId를 찾을 수 없다는 불평과 함께 폭탄을 터뜨린다.
AspNet ID가 ContactUserStore.CreateAsync (ContactUser 사용자)를 호출 할 때 데이터베이스에 만들어진 연락처 레코드의 ID 키를 알지 못하기 때문에 발생합니다. 이 메서드는 성공적으로 완료 (연락처 레코드 만들기)하지만 방금 생성 한 사용자가 아닌 userId = 0으로 ContactUserStore.FindByIdAsync (int userId)를 호출합니다.
전달할 수있는 방법이 있습니까? CreateAsync()에서 데이터베이스에 생성 된 userID의 @@ identity 값을 다시 표시 하시겠습니까? 또는 FindByName() 또는 FindByEmail() 메서드를 사용하여 생성 후 사용자를 선택하도록 강요합니까?
내가 EntityFramework를 사용하지 않는; 나는 Insight.Database, 마이크로 orm을 사용하여 공급자를 구현했습니다. – Maarten