使用加密来散列密码,然后保存到数据库

时间:2015-09-16 13:45:27

标签: c# asp.net sql-server asp.net-mvc

目前我有这段代码

    // POST: users/Create
    // To protect from overposting attacks, please enable the specific properties you want to bind to, for 
    // more details see http://go.microsoft.com/fwlink/?LinkId=317598.
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult Create([Bind(Include = "id,naam,wachtwoord,email,isadmin")] user user)
    {
        user.wachtwoord = Crypto.HashPassword(user.wachtwoord);
        if (ModelState.IsValid)
        {
            db.users.Add(user);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(user);
    }

现在,如果我使用user.wachtwoord = crypto.hashpassword

,它会中断

现在我的问题是在这种情况下是通过httppost方法保存用户密码的正确方法,以及我如何在登录控制器上取消密码?

问候

2 个答案:

答案 0 :(得分:1)

如果要实现自定义解决方案,可以是:使用带盐的单向散列算法,并将该值作为用户密码存储在users表中。 你不会" unhashing"登录控制器上的密码,您可以使用salt来散列用户在登录控制器中提供的密码,然后将其与数据库(或保存用户凭据的存储库)中的密码进行比较。

答案 1 :(得分:0)

为什么不考虑ASP.NET身份?你可以在这里开箱即用。