#

Asp Net Core Login: Email wird nicht erkannt
 
 
Problem:
beim Login über ein Asp Net Login-Formular wird die Email nicht erkannt.
 
Betrifft:
Asp.Net Core 2 MVC Identiy
 

 
Ursache:
In der Standard-Software Vorgabe von Asp.Net Core MVC Anwendungen wird beim Einbinden der Microsoft Identity der AccountControler.cs falsch erstellt.
Die Login-Methode frägt nach dem User ab und nicht nach der Email.

_signInManager.PasswordSignInAsync(Username,model.Password,model.RememberMe,lockoutOnFailure:false);


 
Man muss deshalb vor dem Aufruf der der PasswordSignIn Methode noch den User als Username ermitteln.
Hierzu kann man den User mit dem _userManager ermitteln

//--<checkuser>--

varuser=await_userManager.FindByEmailAsync(model.Email);

if(user==null)

{

//*old:Don'trevealthattheuserdoesnotexist

//*old:returnRedirectToAction(nameof(ResetPasswordConfirmation));

//returnRedirectToAction(nameof(Register));

ModelState.AddModelError("","emailnotfoundorpasswordwrong.");

returnView(model);

}

//--</checkuser>--
 


 
Anschliessend übernimmt man den Username und übergibt diesen als ersten Parameter
 

stringUsername=user.UserName;

varresult=await_signInManager.PasswordSignInAsync(Username,model.Password,model.RememberMe,lockoutOnFailure:false);
 


 
 
Komplettes Login, Asp.Net Core 2 MVC

 

[HttpPost]

[AllowAnonymous]

[ValidateAntiForgeryToken]

publicasyncTask<IActionResult>Login(LoginViewModelmodel,stringreturnUrl=null)

{

//--------------<Login_Postback()>--------------

ViewData["ReturnUrl"]=returnUrl;

if(ModelState.IsValid)

{

//--<checkuser>--

varuser=await_userManager.FindByEmailAsync(model.Email);

if(user==null)

{

//*old:Don'trevealthattheuserdoesnotexist

//*old:returnRedirectToAction(nameof(ResetPasswordConfirmation));

//returnRedirectToAction(nameof(Register));

ModelState.AddModelError("","emailnotfoundorpasswordwrong.");

returnView(model);

}

//--</checkuser>--

 

 

stringUsername=user.UserName;

varresult=await_signInManager.PasswordSignInAsync(Username,model.Password,model.RememberMe,lockoutOnFailure:false);

if(result.Succeeded)

{

//-<ok>-

_logger.LogInformation("Userloggedin.");

returnRedirectToLocal(returnUrl);

//-</ok>-

}
 


 
Mobile

.

yesmovies