2014-12-16 3 views
2

Я пытался наследовать IdentityUser, чтобы создать свой собственный класс, который использует Identity и все еще записывает в мою базу данных, и я продолжаю получать эту ошибку, когда пытаюсь вызвать метод регистрации :IdentityUser: «Имя не может быть пустым или пустым»

{ 
    "$id": "1", 
    "Message": "The request is invalid.", 
    "ModelState": { 
     "$id": "2", 
     "": [ 
      "Name cannot be null or empty." 
     ] 
    } 
} 

Я пытался несколько вещей, но ничего works.For примера, когда я пытаюсь установить UserName поле IdentityUser он говорит, что это невозможно, потому что не существует в контексте. Важно отметить, что в том, что я использую базу данных ADO.NET первой модели за счет :)

Это класс:

public partial class Account :IdentityUser 
    { 
     public Account() 
     { 
      this.Families = new HashSet<Family>(); 
     } 

     public long idAccount { get; set; } 
     public string email { get; set; } 
     public string password { get; set; } 
     public string firstName { get; set; } 
     public string lastName { get; set; } 

     public virtual ICollection<Family> Families { get; set; } 
    } 

Это мой репозиторий аутентификации Класс:

public class AuthRepository :IDisposable 
    { 
     private DAKPAKEntities _ctx; 

     private UserManager<Account> _userManager; 

     public AuthRepository() 
     { 
      _ctx = new DAKPAKEntities(); 
      _userManager = new UserManager<Account>(new UserStore<Account>(_ctx)); 
     } 

     public async Task<IdentityResult> RegisterUser(Account userModel) 
     { 
      Account user = new Account 
      { 

       firstName = userModel.firstName, 
       lastName = userModel.lastName, 
       email=userModel.email 
      }; 


      var result = await _userManager.CreateAsync(user,userModel.password); 

      return result; 
     } 

}

И это контроллер, который вызывает хранилище:

// POST api/Account/Register 


    [AllowAnonymous] 
     [Route("Register")] 
     public async Task<IHttpActionResult> Register(Account userModel) 
     { 
      IdentityResult result = await _repo.RegisterUser(userModel); 

      IHttpActionResult errorResult = GetErrorResult(result); 

      if (errorResult != null) 
      { 
       return errorResult; 
      } 



return Ok(); 
    } 

Я новичок в этом и не могу попробовать. Я сделал почти все, что обычно предлагается для такого типа ошибок, пожалуйста, помогите :)

ответ

0

Похоже, что вы не сделали все, что требуется для того, чтобы изменить то, как ASPNet Identity хранит информацию пользователя в базе данных.

Предлагайте Вам здесь: Overview of Custom Storage Providers for ASP.NET Identity