2017-10-30 13 views
0

私はドットネットコアWebアプリケーションをビルドしていましたが、アイデンティティシステムではログインできません。データベースのユーザー名とメールアドレスが同じではない誰が何が起こっているのか知っていますか?別のメールアドレスとユーザー名を持つ.netコアアプリケーションにログイン

+0

あなたのメールアドレスではなくユーザー名でログインしようとしていますか?次に、 'AccountControler.Login'のコードを調整して、電子メールまたはユーザ名でユーザを見つけなければなりません。 – GeorgDangl

+0

個人的な認証が選択されたドットネットコアウェブアプリを構築しました。私は登録を変更しました。ユーザー名を電子メール以外のものに保存するポスト登録アクション。登録ユーザーがログインした後、全身が幸せですが、ユーザーがログオフし、同じ信任状が再び失敗する – EHSAN

+0

'Register'メソッドと' Login'メソッドの両方で答えを更新できますか? – GeorgDangl

答えて

0

私は私が正しくあなたの質問を理解してかどうかわからないんだけど、アカウントコントローラ上の次のログインの方法は、ユーザー名またはパスワードでログインを許可します。

[AllowAnonymous] 
[HttpPost("login")] 
public async Task<IActionResult> LoginAsync([FromBody]LoginPost model) 
{ 
    if (!ModelState.IsValid) 
    { 
     return BadRequest(); 
    } 
    // The user is identified either by Email or by Username 
    var user = await _userManager.FindByEmailAsync(model.Identifier) 
      ?? await _userManager.FindByNameAsync(model.Identifier); 
    if (user == null) 
    { 
     return Unauthorized(); 
    } 
    var signInResult = await _signInManager.PasswordSignInAsync(user, model.Password, true, false); 
    if (signInResult.Succeeded) 
    { 
     return NoContent(); 
    } 
    return Unauthorized(); 
} 

ユーザーがある行に注意してください。バッキングストアで調べた:FindByEmail() ?? FindByUsername。これにより、username/passwordまたはemail/passwordのいずれかでログインすることができます。

関連する問題