Witam, przeglądam sobie książkę Adama Freemana "ASP.NET Core 2. Zaawansowanie programowanie.".
Tak się zastanawiam tutaj przy jednym przykładzie metody Edit, w rozdziale z ASP.NET Identity:
[HttpPost]
public async Task<IActionResult> Edit(string id, string email, string password)
{
AppUser user = await userManager.FindIdByAsync(id);
if (user != null)
{
user.Email = email;
IdentityResult validEmail = await userValidator.ValidateAsync(userManager, user);
if (!validEmail.Succeeded)
{
AddErrorsFromResult(validEmail);
}
IdentityResult validPass = null;
if (!string.IsNullOrEmpty(password))
{
validPass = await passwordValidator.ValidateAsync(userManager, user, password);
if (validPass.Succeeded)
{
user.PasswordHash = passwordHasher.HasPassword(user, password);
}
else
{
AddErrorsFromResult(validPass);
}
}
if ((validEmail.Succeeded && validPass == null) || (validEmail.Succeeded && password != string.Empty && validPass.Succeeded))
{
IdentityResult result = await userManager.UpdateAsync(user);
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
AddErrorsFromResult(result);
}
}
}
else
{
ModelState.AddModelError("", "Nie znaleziono użytkownika.");
}
return View(user);
}
Chodzi mi o warunek if
((validEmail.Succeeded && validPass == null) || (validEmail.Succeeded && password != string.Empty && validPass.Succeeded))
Jeśli validacja emaila przejdzie, a walidacja passwordu będzie null to będzie ok?
pavarotti