在 C# 上自定义获取和设置方法

本文关键字:设置 方法 获取 自定义 | 更新日期: 2023-09-27 18:33:56

每当我要保存模型时,我总是想设置一个加密的密码,请参阅下面的代码,它有效:

 private string _senha;
    public string Senha
    {
        get { return _senha; }
        set
        {
            if (null != value)
            {
                _senha = BCryptHelper.HashPassword(value, BCryptHelper.GenerateSalt());
            }
        }
    }

但是在我的AuthController中检查密码,它不起作用,我认为模型在做之前再次尝试加密,我该怎么办?

我的身份验证:

// POST: Clientes/Login
    [HttpPost]
    public ActionResult Login(FormCollection cliente_params)
    {
        if (ModelState.IsValid)
        {
            string Email = cliente_params["Email"].ToString();
            string Senha = cliente_params["Senha"].ToString();
            bool Remember = Convert.ToBoolean(Convert.ToInt32(cliente_params["Remember"]));
            Cliente cliente = db.Clientes.Where(p => p.Email.Equals(Email)).FirstOrDefault();
            if (null != cliente)
            {
                string EncryptedPassword = cliente.Senha;
                if (BCryptHelper.CheckPassword(Senha, EncryptedPassword))
                {
                    FormsAuthentication.SetAuthCookie(cliente.Email, Remember);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", "Email ou senha incorretos!" + Senha + " - " + EncryptedPassword);
                }
            }
            else
            {
                ModelState.AddModelError("", "Email ou senha incorretos!");
            }
        }
        return View();
    }

在 C# 上自定义获取和设置方法

我没有在模型上工作,为了解决,我将逻辑代码放在控制器中。