2017-09-30 4 views
0

AccountControllerを使用せずにユーザーを作成していて、ユーザーが作成された後にそのユーザーの電子メールとパスワードでログインしようとします。常に失敗し続けます。同じパスワードでユーザーを作成しているため、なぜ失敗するのかわかりません。AccountControllerを使用していないユーザーを作成し、ログインしようとするとパスワードが失われる

AccountControllerを使用せずにユーザーを作成するときに間違っていることがありますか?そしてまた、私はちょうど私がいつも頼る必要はしたくないのでAccountControllerが使用していない理由コードが

AspNetUser user = new AspNetUser(); 

user.UserName = ahl.AccountHolderName; 
user.SecurityStamp = Guid.NewGuid().ToString(); 
user.PasswordHash = pHasher.HashPassword(ahl.AccountHolderPassword); 
user.Email = ahl.AccountHolderEmail; 
user.Id = Guid.NewGuid().ToString(); 

HWC.AspNetUsers.Add(user); 
HWC.SaveChanges(); 

で包み、誰もが尋ねる

AspNetUserテーブルに新しいユーザーを追加していそのコントローラーで

EDITここ

public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
    { 
     if (!ModelState.IsValid) 
     { 
      return View(model); 
     } 

     // This doesn't count login failures towards account lockout 
     // To enable password failures to trigger account lockout, change to shouldLockout: true 
     var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 
     switch (result) 
     { 
      case SignInStatus.Success: 
       return RedirectToLocal(returnUrl); 
      case SignInStatus.LockedOut: 
       return View("Lockout"); 
      case SignInStatus.RequiresVerification: 
       return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); 
      case SignInStatus.Failure: 
      default: 
       ModelState.AddModelError("", "Invalid login attempt."); 
       return View(model); 
     } 
    } 
+0

データがデータベースにあるかどうかを確認しましたか? – Nikolaus

+0

@Nikolaus、はい私は持っていると彼らはそこにいる – Chris

+0

おそらくあなたのログインコードを表示する必要があります... –

答えて

1

問題にログインするとき、あなたが新たに作成したユーザーのユーザー名と電子メールのための2つの異なる値を使用しているされて呼び出されているログインコードです。

SignInManager.PasswordSignInAsync() check `userName` and `Password`, not `Email` and `Password` which you are passing in your code. 

変更user.UserName = ahl.AccountHolderEmail;からuser.UserName = ahl.AccountHolderName;コードのユーザーを作成し、これは動作するはずです。

+0

素晴らしいです、それが問題でした。それをクリアしてくれてありがとう – Chris

関連する問題