C# 此登录身份验证代码在ASP.NET核心MVC中的外观如何?
我需要这段代码片段的帮助,它在ASP.NET MVC中,我想将它传递给ASP.NET CORE MVC,但是我在ASP.NET CORE中找不到类似的东西C# 此登录身份验证代码在ASP.NET核心MVC中的外观如何?,c#,session,asp.net-core,asp.net-core-mvc,session-cookies,C#,Session,Asp.net Core,Asp.net Core Mvc,Session Cookies,我需要这段代码片段的帮助,它在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) {
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");
}
所以你想让我们把你的ASP.Net MVC代码转换成ASP.Net核心MVC?如果是这样的话,你自己有没有尝试过?你在尝试时遇到了什么问题?如果你坚持自己的身份框架,这些问题将保持不变。MVC 5和Core都在生成相同的前端页面。会话[“AuthID”],Request.Cookies.AllKeys.Contains,Request.Cookies.Remove。。。这些示例在ASP.NET Core中找不到参考。您需要首先了解