Asp.net mvc 简单的自定义注册/登录系统如何散列和检索密码
我已经创建了一个简单的注册/登录系统,现在当用户注册时,它只在数据库中存储他们的普通密码。我想知道,当他们登录时,我如何将其散列,如何将其取消散列,并将其与他们输入的内容进行比较 我的users表/模型类中只有用户名和密码 用户控制器Asp.net mvc 简单的自定义注册/登录系统如何散列和检索密码,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我已经创建了一个简单的注册/登录系统,现在当用户注册时,它只在数据库中存储他们的普通密码。我想知道,当他们登录时,我如何将其散列,如何将其取消散列,并将其与他们输入的内容进行比较 我的users表/模型类中只有用户名和密码 用户控制器 你不能“取消”散列密码,这是一种单向算法。为了进行比较,您对登录密码运行相同的算法,然后将其与存储在Register方法中的值进行比较。如果要在应用程序中提供登录机制,可以使用asp.net标识。你可以查一下 // GET: Register User publi
你不能“取消”散列密码,这是一种单向算法。为了进行比较,您对登录密码运行相同的算法,然后将其与存储在Register方法中的值进行比较。如果要在应用程序中提供登录机制,可以使用asp.net标识。你可以查一下
// GET: Register User
public ActionResult Register(User user)
{
if (ModelState.IsValid)
{
using (UserContext db = new UserContext())
{
db.Users.Add(user);
db.SaveChanges();
}
ModelState.Clear();
}
return View();
}
// POST: Login User
[HttpPost]
public ActionResult Login(User user)
{
using (UserContext db = new UserContext())
{
var usr = db.Users.SingleOrDefault(u => u.Username == user.Username && u.Password == user.Password);
if (usr != null)
{
Session["UserID"] = usr.Username.ToString();
return RedirectToAction("Index", "Profile");
}
else
{
ModelState.AddModelError("", "Username or Password Incorrect");
}
}
return View();
}