Добрый вечер, я вот пишу ве-приложение на платформе asp.net core (MVC) и пытаюсь реализовать функционал восстановления пароля. Нашла хороший сайт с описанием примера, но не очень понимаю, как адаптировать под себя, там они, вроде Identity используют и Entity Framework.
Вот я создала две модели:
public class ForgotPasswordViewModel
{
[Required]
[EmailAddress]
public string Email { get; set; }
}
public class ResetPasswordViewModel
{
[EmailAddress]
public string Email { get; set; }
[DataType(DataType.Password)]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "Пароли не совпадают")]
public string ConfirmPassword { get; set; }
public string Code { get; set; }
}
Дошла до создания контроллера:
public class AccountController : Controller
{
private IConfiguration _config;
CommonHelper _helper;
public string readerSubunit;
IWebHostEnvironment _appEnvironment;
public AccountController(IConfiguration config, IWebHostEnvironment appEnvironment)
{
_config = config;
_helper = new CommonHelper(_config);
_appEnvironment = appEnvironment;
}
[HttpGet]
[AllowAnonymous]
public IActionResult ForgotPassword()
{
return View();
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ForgotPassword(ForgotPasswordViewModel model)
{
string connectionString = _config["ConnectionStrings:DefaultConnection"];
var userEmail = HttpContext.Session.GetString("email");
if (ModelState.IsValid)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand("showSubunit", connection);
cmd.Parameters.AddWithValue("userEmail", userEmail);
cmd.CommandType = CommandType.StoredProcedure;
var readerSubunit = cmd.ExecuteScalar();
}
if (readerSubunit == null)
{
// пользователь с данным email может отсутствовать в бд
// тем не менее мы выводим стандартное сообщение, чтобы скрыть
// наличие или отсутствие пользователя в бд
return View("ForgotPasswordConfirmation");
}
}
return View(model);
}
}
Вот сайт, откуда я это взяла:
https://metanit.com/sharp/aspnet5/16.6.php
И я вот не понимаю, как мне действовать, начиная с этой строки? Подскажите, пожалуйста?
var code = await _userManager.GeneratePasswordResetTokenAsync(user);