Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Criptografa a senha
- public string GerarMD5(string Senha) {
- // criptografia MD5
- MD5 md5Hasher = MD5.Create();
- // Criptografa o valor passado
- byte[] valorCriptografado = md5Hasher.ComputeHash(Encoding.Default.GetBytes(Senha));
- for (int i = 0; i < valorCriptografado.Length; i++) {
- strBuilder.Append(valorCriptografado[i].ToString("x2"));
- }
- // retorna o valor criptografado como string
- return strBuilder.ToString();
- }
- // Cria usuarioDTO
- UsuarioDTO usuarioDTO = new UsuarioDTO()
- {
- Nome = model.Nome,
- SobreNome = model.SobreNome,
- Email = model.Email,
- Usuario = model.Usuario,
- Senha = GerarMD5(model.Senha),
- };
- // Adiciona ao DTO
- db.Usuarios.Add(usuarioDTO);
- // Salva
- db.SaveChanges();
- // Verifica se o valor é compativel com o hash passado
- public bool verifyMd5Hash(string valor, string valorCriptografado)
- {
- // Criptografamos o valor passado como parâmetro
- // utilizando o mesmo método citado no artigo anterior
- string NovoValorCriptografado = GerarMD5(valor);
- // Criamos uma StringComparer para compararmos os dois hashs gerados
- StringComparer comparer = StringComparer.OrdinalIgnoreCase;
- //Se os valores forem iguais, retorna true, ou seja, o valor
- // passado corresponde ao Hash
- if (comparer.Compare(NovoValorCriptografado, valorCriptografado) == 0)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- // POST: /conta/login
- [HttpPost]
- public ActionResult Login(LoginUsuarioVM model)
- {
- // Verifica o status da model
- if (!ModelState.IsValid)
- {
- return View(model);
- }
- // Verifica se o usuário é válido
- bool isValid = false;
- using (Db db = new Db())
- {
- if (db.Usuarios.Any(x => x.Usuario.Equals(model.Usuario) && (verifyMd5Hash(x.Senha, model.Senha))))
- {
- isValid = true;
- }
- }
- if (!isValid)
- {
- ModelState.AddModelError("", "Usuário ou senha inválida.");
- return View(model);
- }
- else
- {
- FormsAuthentication.SetAuthCookie(model.Usuario, model.Lembrar);
- return Redirect(FormsAuthentication.GetRedirectUrl(model.Usuario, model.Lembrar));
- }
- }
- if (db.Usuarios.Any(x => x.Usuario.Equals(model.Usuario) &&
- (verifyMd5Hash(x.Senha, model.Senha))))
- var usuario = db.Usuarios.First(u => u.Usuario == model.Usuario);
- if(verifyMd5Hash(usuario.Senha, model.Senha)) { }
Add Comment
Please, Sign In to add comment