2016-08-09 27 views
1

何らかの理由で、 'アイデンティティ'の 'UserManager'は、自分のシードクラス内で新しいユーザーを保存しません。シーディングクラスの他のものは、期待どおりに正常に動作します。それは単に「CreateAsync」メソッドの問題です。コードは以下の通りです:UserManager.CreateAsyncは、シードクラス内に新しいユーザープロファイルを作成しません。

public class WorldContextSeedData 
{ 
    private WorldContext _context; 
    private UserManager<WorldUser> _userManager; 

    public WorldContextSeedData(WorldContext context, UserManager<WorldUser> userManager) 
    { 
     _context = context; 
     _userManager = userManager; 
    } 

    public async Task EnsureSeedData() 
    { 
     if (await _userManager.FindByEmailAsync("[email protected]") == null) 
     { 
      //add user 
      var newUser = new WorldUser 
      { 
       UserName = "Lucas", 
       Email = "[email protected]" 
      }; 

      await _userManager.CreateAsync(newUser, "[email protected]!"); 
     } 

     if (!_context.Trips.Any()) 
     { 
      //Add new Data 
      var usTrip = new Trip() 
      { 
       Name = "US Trip", 
       CreatedBy = "Lucas", 
       Timestamp = DateTime.Now, 
       Stops = new List<Stop>() 
       { 
        new Stop { Name= "Atlanta, GA", Order = 0}, 
        new Stop { Name= "NYC, NY", Order = 1}, 
        new Stop { Name= "Tempe, AZ", Order = 2} 
       } 
      }; 

      var worldTrip = new Trip() 
      { 
       Name = "World Trip", 
       CreatedBy = "Lucas", 
       Timestamp = DateTime.Now, 
       Stops = new List<Stop>() 
       { 
        new Stop { Name= "Poland", Order = 0}, 
        new Stop { Name= "France", Order = 1}, 
        new Stop { Name= "Germany", Order = 2} 
       } 
      }; 

      _context.Trips.Add(usTrip); 
      _context.Stops.AddRange(usTrip.Stops); 

      _context.Trips.Add(worldTrip); 
      _context.Stops.AddRange(worldTrip.Stops); 

      _context.SaveChanges(); 
     } 
    } 
} 
+3

は、結果を確認してみてください。MYPする@のssword「IdentityResult結果は= _userManager.CreateAsync(NEWUSERを待ちます ""! ); " –

+0

完璧なスティーブ、おかげでたくさん、どのように私はそのデバッグオプションを省略することができます、結果は、数字が含まれていないパスワードが付属して、それは今すべて良いです – lucas

答えて

1

スティーブの偉大なコメントのヒントによると、私はパスワードが弱すぎることを確認することができました。一度パスワードを強くすると(数字が必要)、問題は解決されました。ここで

、私は、新しいユーザーを作成する返された結果を含むことになり、変数を導入しています:

IdentityResult result = await _userManager.CreateAsync(newUser, newUserPassword); 
関連する問題