public async Task <IActionResult> ForgotPassword(ForgotPasswordModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByEmailAsync(model.Email); if (user != null) { var token = await _userManager.GeneratePasswordResetTokenAsync(user); var resetURL = Url.Action("ResetPassword", "Home", new { token = token, email = model.Email }, Request.Scheme); EnviarEmail.enviar(resetURL, "Acesse o link abaixo para redefinir sua senha!", "Redefinição de Senha", user.Email); System.IO.File.WriteAllText("resetLink.txt", resetURL); // LINK GERADO PARA RECUPERAR PASSWORD ViewData["Mensagem"] = "E-mail de redefinição de senha enviado!"; return(View("_Mensagem")); } else { // IMPLEMENTAR VIEW USUÁRIO NÃO ENCONTRADO } } return(View()); }
public async Task <IActionResult> Register(RegisterModel model) { if (ModelState.IsValid) { var user = await _userManager.FindByNameAsync(model.UserName); if (user == null) { user = new MyUser() { Id = Guid.NewGuid().ToString(), UserName = model.UserName, Email = model.UserName }; var result = await _userManager.CreateAsync(user, model.Password); var myRole = await _roleManager.FindByNameAsync(model.Role); if (myRole != null) { IdentityResult roleResult = await _userManager.AddToRoleAsync(user, myRole.Name); } if (result.Succeeded) { var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); var confirmationEmail = Url.Action(nameof(ConfirmEmailAddress), nameof(AccountController).Replace("Controller", ""), new { token = token, email = user.Email }, Request.Scheme); EnviarEmail.enviar(confirmationEmail, "Confirme seu e-mail acessando o link abaixo!", "Confirmação de cadastro", user.Email); } else { foreach (var erro in result.Errors) { ModelState.AddModelError("", erro.Description); } return(View()); } } ViewData["Mensagem"] = "Confirme o cadastro acessando o link enviado ao seu e-mail!"; return(View("_Mensagem")); } return(View()); }