Мне нужна помощь с этим фрагментом кода, он находится в ASP. NET MVC, я хотел бы передать его на ASP. NET CORE MVC, однако некоторые вещи я не найти аналог в ASP. NET core.
public ActionResult Login()
{
VMLogin vm = new VMLogin();
return View(vm);
}
[HttpPost]
public ActionResult Login(VMLogin vm)
{
if (ModelState.IsValid)
{
Usuario usuarioDb = db.Usuarios.Where(u => u.Login == vm.Login).FirstOrDefault();
if (usuarioDb == null)
{
ModelState.AddModelError("", "Não existe usuário com este Login");
return View(vm);
}
bool senhaConfere = Crypto.VerifyHashedPassword(usuarioDb.Senha, vm.Senha);
if (!senhaConfere)
{
ModelState.AddModelError("", "Senha incorreta");
return View(vm);
}
string authId = Guid.NewGuid().ToString();
Session["AuthID"] = authId;
var cookie = new HttpCookie("AuthID");
cookie.Expires = DateTime.Now.AddDays(7);
cookie.Value = authId;
Response.Cookies.Add(cookie);
usuarioDb.AuthId = authId;
db.SaveChanges();
return RedirectToAction("Index", "Home");
}
return View(vm);
}
public ActionResult Logout()
{
if (Request.Cookies.AllKeys.Contains("AuthID"))
{
String authId = Request.Cookies["AuthID"].Value;
Usuario usuarioDb = db.Usuarios.Where(c => c.AuthId == authId).FirstOrDefault();
if (usuarioDb != null)
{
usuarioDb.AuthId = "";
db.SaveChanges();
}
Request.Cookies.Remove("AuthID");
if (Session["AuthID"] != null)
{
Session.Remove("AuthID");
}
}
return RedirectToAction("Index", "Home");
}