Ich habe ein kleines logisches Problem bei der Anmeldung auf der Website. Wenn keine registrierte E-Mail-Adresse vorhanden ist, muss die Überprüfung auf der Seite fehlschlagen und eine Nachricht im Feld "E-Mail-Adresse" angezeigt werden, die besagt, dass die E-Mail-Adresse nicht vorhanden ist.Anmeldung mit unregistrierten E-Mail-Adresse löst Ausnahme
Aber ich bin nicht sicher, wie dieser Code unten Login darum kümmern sollte ...
In diesem Code unter ‚Benutzer‘ ist null, wenn keine E-Mail-Adresse gefunden wird, so PasswordSignInAsync eine Ausnahme, weil die Würfe Die user.UserName-Eigenschaft ist null.
Wie würde ich die Validierung für diese umgehen und sollte dies nicht bereits in die Logik für die ASP.Net MVC Vorlage mit Single Sign-On erstellt werden erstellt ich?
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// Require the user to have a confirmed email before they can log on.
var user = await UserManager.FindByEmailAsync(model.Email);
if (user != null)
{
if (!await UserManager.IsEmailConfirmedAsync(user.Id))
{
string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Confirm your account-Resend");
// Uncomment to debug locally
// ViewBag.Link = callbackUrl;
ViewBag.errorMessage = "You must have a confirmed email to log on. "
+ "The confirmation token has been resent to your email account.";
return View("Error");
}
}
// 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(user.UserName, 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);
}
}