在 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();
}
我没有在模型上工作,为了解决,我将逻辑代码放在控制器中。