public ResultadoOperacionDto VerificaPasswordEncriptado(Usuario usuarioDTO, string password) { var resultado = new ResultadoOperacionDto(); try { var valido = false; if (usuarioDTO != null && !String.IsNullOrEmpty(usuarioDTO.Password)) { var salt = usuarioDTO.Password.Substring(usuarioDTO.Password.Length - PasswordHashGenerator.TAMANIO_B64_NUMERO_SALT); var hashedPassword = PasswordHashGenerator.CreatePasswordHash(password, salt); valido = hashedPassword.Equals(usuarioDTO.Password); } resultado.InformacionExtra = valido; resultado.Resultado = valido; } catch (Exception exception) { LogUtil.Error(exception); resultado.Resultado = false; resultado.Mensaje = exception.Message; resultado.InformacionExtra = exception; } return(resultado); }
public bool VerificaPasswordEncriptado(Usuario usuario, string password) { var valido = false; if (usuario != null && !String.IsNullOrEmpty(usuario.Password)) { var salt = usuario.Password.Substring(usuario.Password.Length - PasswordHashGenerator.TAMANIO_B64_NUMERO_SALT); var hashedPassword = PasswordHashGenerator.CreatePasswordHash(password, salt); valido = hashedPassword.Equals(usuario.Password); } return(valido); }
public bool EnvioCorreoOlvidoContrasena(long idUsuario, string url) { Usuario usuario = GetById(idUsuario); var pass = PasswordHashGenerator.GenerarPassword(); var salt = pass.Substring(pass.Length - PasswordHashGenerator.TAMANIO_B64_NUMERO_SALT); var hashedPassword = PasswordHashGenerator.CreatePasswordHash(pass, salt); usuario.Password = hashedPassword; usuario.Bloqueado = false; usuario.IntentosErroneosLogin = 0; usuario.VigenciaPassword = DateTime.Today.AddDays(-1); Update(usuario); var usuarioMail = new UsuarioMailDto { Nombre = usuario.Nombre + " " + usuario.ApellidoPaterno + " " + usuario.ApellidoMaterno, CorreoElectronico = usuario.CorreoElectronico, Password = pass }; var html = TemplateMail.GenerateHtmlCorreoUsuario(usuarioMail, url); var logo = TemplateMail.GeneraLogoAbaxAttachment(); return(MailUtil.EnviarEmail(usuario.CorreoElectronico, "Envio de Nueva Contraseña", html, logo)); }
/// <summary> /// Genera la cadena encriptada /// </summary> /// <param name="password"></param> /// <returns></returns> public static String EncriptarPassword(String password) { string salt = PasswordHashGenerator.CreateSalt(PasswordHashGenerator.TAMANIO_NUMERO_SALT); return(PasswordHashGenerator.CreatePasswordHash(password, salt)); }
public ResultadoOperacionDto GuardarUsuario(Usuario usuario, long idUsuarioExec, String url, String correoElectronico) { var esLoginActiveDirectory = bool.Parse(ConfigurationManager.AppSettings.Get("LoginActiveDirectory")); var resultado = new ResultadoOperacionDto(); try { bool envio = false; var pass = String.Empty; if (usuario.IdUsuario == 0) { usuario.Activo = true; if (esLoginActiveDirectory) { usuario.VigenciaPassword = DateTime.Now.AddYears(50); } else { usuario.VigenciaPassword = DateTime.Now.AddDays(-1); } usuario.Bloqueado = false; usuario.HistoricoPassword = String.Empty; usuario.IntentosErroneosLogin = 0; pass = UtilAbax.GenerarCodigo(); usuario.Password = pass; var salt = usuario.Password.Substring(usuario.Password.Length - PasswordHashGenerator.TAMANIO_B64_NUMERO_SALT); usuario.Password = PasswordHashGenerator.CreatePasswordHash(usuario.Password, salt); envio = true; } var param = new List <object>() { usuario.CorreoElectronico }; var informacionAuditoria = new InformacionAuditoriaDto(idUsuarioExec, usuario.IdUsuario == 0 ? ConstantsAccionAuditable.Insertar : ConstantsAccionAuditable.Actualizar, ConstantsModulo.Usuarios, usuario.IdUsuario == 0 ? MensajesServicios.InsertarUsuario : MensajesServicios.Actualizarusuario, param); resultado = Repository.GuardarUsuario(usuario); resultado.InformacionAuditoria = informacionAuditoria; if (resultado.Resultado && envio && (!esLoginActiveDirectory || UtilAbax.esCorreoValido(usuario.CorreoElectronico))) { Repository.EnvioCorreoRegistro(usuario, pass, url); } else if (resultado.Resultado && envio && esLoginActiveDirectory && correoElectronico != null) { Repository.EnvioCorreoRegistroLDAP(usuario, url, correoElectronico); } } catch (Exception exception) { resultado.Resultado = false; resultado.Mensaje = exception.Message; resultado.InformacionExtra = exception; } return(resultado); }