private void comprobarEstadoUsuario(TBLUSUARIOS usuarioExistente) { char estadoUsuPrincipal = usuarioExistente.ESTADO_USUARIO; if (!string.IsNullOrEmpty(estadoUsuPrincipal.ToString())) { switch (estadoUsuPrincipal) { case 'B': mostrarToast("Usuario Bloqueado", "Su usuario esta bloqueado. Consulte con el administrador para desbloquear", "Error", 5000); break; case 'I': mostrarToast("Usuario Inactivo", "Su usuario esta Inactivo. Consulte con el administrador para desbloquear", "Error", 5000); break; case 'C': mostrarToast("Por confirmar registro", "Su usuario esta por confirmar su registro. El administrador le enviará un correo al momento de aprobar su registro", "Warning", 6000); break; case 'R': //mostrarToast("Recuperar contraseña", "Aqui reenvio a la pagina para recuperar contraseña", "Warning"); Response.Redirect("RecuperarPage.aspx"); break; case 'A': ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "console", "console.log('Administrador');", true); break; default: mostrarToast("Estado desconocido", "Sin estado", "Warning"); return; } } }
protected void btnConfirmarCodigo_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtEmail.Text)) { mostrarToast("Email vacío", "Ingrese su email", "Warning"); return; } if (string.IsNullOrEmpty(txtCodigo.Text)) { mostrarToast("Código vacío", "Ingrese el código para confirmar la autorización de cambio de contraseña", "Warning", 5000); return; } TBLUSUARIOS usu = new TBLUSUARIOS(); TBLCODRECUPERACION cod = new TBLCODRECUPERACION(); try { usu = LogicaUsuarios.buscarCorreoExistente(txtEmail.Text); cod = LogicaCodigos.ultimoCodigo(usu.ID_USUARIO, txtCodigo.Text); cambiarImagen(usu.FOTO_PATH_USUARIO); Session["contrseniaUsuario"] = usu.PASS_USUARIO; Session["usuarioRecuperar"] = usu; } catch (Exception ex) { throw new ArgumentException("error al recuperar informacion: </br> " + ex.Message); } if (usu != null) { if (cod != null) { if (cod.CODIGO_RECUPERACION == txtCodigo.Text) { mostrarToast("Codigo Correcto", "Ingrese una nueva contraseña para su usuario. Siga las politicas de seguridad para su nueva contraseña. NO INGRESE LA MISMA CONTRASEÑA ANTERIOR!", "Info", 10000); pnConfirmarCorreo.Visible = false; pnCambiarContrasenia.Visible = true; } else { mostrarToast("Codigo Incorrecto", "El código ingresado no es el correcto, copie sin espacios el código e ingreselo nuevamente. Si persiste el error consulte con el administrador.", "Error", 8000); } } else { mostrarToast("Error en Codigo", "Error en codigo, esta vacio", "Error"); mostrarToast("Error en Codigo", "Error en codigo, esta vacio", "Error"); } } else { mostrarToast("Error en Usuario", "Error en Usuario por correo, no encontrado", "Error"); } }
///CAMBIAR ESTADO A RECUPERACION public static void cambiarEstadoRecuperacion(TBLUSUARIOS usuario) { try { usuario.ESTADO_USUARIO = 'R'; dc.SubmitChanges(); } catch (Exception ex) { throw new ArgumentException("Los datos no fueron guardados: </br> " + ex.Message); } }
///BLOQUEAR USUARIO public static void bloquearUsu(TBLUSUARIOS usuario) { try { usuario.ESTADO_USUARIO = 'B'; dc.SubmitChanges(); } catch (Exception ex) { throw new ArgumentException("Los datos no fueron guardados: </br> " + ex.Message); } }
protected void btnregistrar_Click(object sender, EventArgs e) { string nombre = txtNombre.Text.Trim(); string apellido = txtApellido.Text.Trim(); string email = txtEmail.Text.Trim(); string usuario = txtUsername.Text.Trim(); string contrasenia = txtPassword.Text.Trim(); string telefono = txtTelefono.Text.Trim(); string pathImagen = ""; ComprobarEmail(); ComprobarUsuario(); if (!string.IsNullOrEmpty(nombre) && !string.IsNullOrEmpty(apellido) && !string.IsNullOrEmpty(email) && !string.IsNullOrEmpty(usuario) && !string.IsNullOrEmpty(contrasenia) && !string.IsNullOrEmpty(telefono)) { pathImagen = SaveAvatarLocal(usuario); if (!string.IsNullOrEmpty(pathImagen)) { try { TBLUSUARIOS usu = new TBLUSUARIOS(); usu.NOMBRE_USUARIO = nombre; usu.APELLIDO_USUARIO = apellido; usu.EMAIL_USUARIO = email; usu.USU_USUARIO = usuario; usu.PASS_USUARIO = LogicaUsuarios.GenerateMD5(contrasenia); usu.TELEFONO_USUARIO = telefono; usu.FOTO_PATH_USUARIO = pathImagen; LogicaUsuarios.guardarUsuario(usu); Session["toastTitulo"] = "Usuario Registrado"; Session["toastMensaje"] = "Sus datos han sido registrados. Espere a que el administrador confirme su registro."; Session["toastClass"] = "success"; Response.Redirect("LoginPage.aspx"); //mostrarToast("Usuario Registrado", "Sus datos han sido registrados. Espere a que el administrador confirme su registro.", "Success", 6000); } catch (Exception ex) { mostrarToast("Error", "Error al guardar el usuario: " + ex.Message, "Error", 8000); return; } } else { mostrarToast("Imagen", "Presione en el boton 'Cargar Imagen' para mostrar el avatar a cargar. es posible que deba ingresar de nuevo su contraseña", "Warning", 8000); } } else { mostrarToast("Campos Vacíos", "No deje los campos vacíos", "Error"); } }
///Consultar public static void cambiarContrasenia(TBLUSUARIOS usuario, string newPass) { try { usuario.PASS_USUARIO = newPass; usuario.ESTADO_USUARIO = 'A'; dc.SubmitChanges(); } catch (Exception ex) { throw new ArgumentException("Los datos no fueron guardados: </br> " + ex.Message); } }
protected async void btnRecuperarContrasenia_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtEmail.Text)) { TBLUSUARIOS usuXCorreo = LogicaUsuarios.buscarCorreoExistente(txtEmail.Text); bool existeCorreo = !usuXCorreo.EMAIL_USUARIO.Equals(""); if (existeCorreo) { string codigo = GenerateNewRandom(); LogicaCodigos.guardarCodigo(usuXCorreo.ID_USUARIO, codigo); LogicaUsuarios.cambiarEstadoRecuperacion(usuXCorreo); string subject = "Recuperación de contraseña"; string htmlString = @" <html> <body> <h3>Estimad@ " + usuXCorreo.NOMBRE_USUARIO + @"</h3> <p><i>Pasos para la recuperación de contraseña</i></p> <p>Tu usuario es: <b style='font-size: 20px;'>" + usuXCorreo.USU_USUARIO + @"</b></p> <p>Ingresa el siguiente codigo: </p> </br> <code style='font-size: 20px;'>" + codigo.ToString() + @"</code > </br> <p>El código deberás ingresarlo en el siguiente enlace: </p> </br> <a href = 'https://localhost:44305/loginTemplates/RecuperarPage.aspx' target = '_blank'>https://localhost:44305/loginTemplates/RecuperarPage.aspx</a> </br> <p>En caso de no poder ingresar a la direcion, ingrese al Login del sistema e ingrese su usuario y cualquier contraseña. Le redireccionará automaticamente a la recuperacion de contraseña.</p> </body> </html>" ; EmailProvider ep = new EmailProvider(subject, htmlString, txtEmail.Text); await ep.SendEmailAsync(); mostrarToast("Correo Enviado", "El correo ha sido enviado a: " + txtEmail.Text + ". Revise su correo y siga las instrucciones para recuperar sus credenciales.", "Success", 6000); Limpiar(); } else { mostrarToast("Correo Inexistente", "El correo provisto no está registrado", "Error"); } } else { mostrarToast("Error", "Esta vacio", "Error"); } }
///METODO PARA GUARDAR DATOS public static void guardarUsuario(TBLUSUARIOS usuario) { try { usuario.ESTADO_USUARIO = 'C'; usuario.FECHA_CREACION_USUARIO = DateTime.Now; usuario.TBLROLE_ID = 2; dc.TBLUSUARIOS.InsertOnSubmit(usuario); dc.SubmitChanges(); } catch (Exception ex) { throw new ArgumentException("Los datos no fueron guardados: </br> " + ex.Message); } }
private void BuscarUsuario() { string usu = Session["usuUsuario"].ToString(); string pass = Session["passUsuario"].ToString(); TBLUSUARIOS usuario = LogicaUsuarios.autenticarXLogin(usu, pass); if (!string.IsNullOrEmpty(usuario.FOTO_PATH_USUARIO)) { CambiarImagen(usuario.FOTO_PATH_USUARIO); } else { CambiarImagen(pathDefaultAvatar); } }
protected void btnRegVerDatosUsu_Click(object sender, EventArgs e) { int codUsu = Convert.ToInt32((sender as LinkButton).CommandArgument); TBLUSUARIOS usuario = LogicaUsuarios.usuarioXID(codUsu); lblNombreConf.Text = usuario.NOMBRE_USUARIO + " " + usuario.APELLIDO_USUARIO; lblUsuarioConf.Text = usuario.USU_USUARIO; lblEmailConf.Text = usuario.EMAIL_USUARIO; Session["estadoUsuarioConf"] = usuario.ESTADO_USUARIO; lblFechaConf.Text = usuario.FECHA_CREACION_USUARIO.ToString(); lblTelefonoConf.Text = usuario.TELEFONO_USUARIO; Session["usuConfirmar"] = usuario.ID_USUARIO; btnConfirmarRegistro.Visible = true; }
protected void btnCambiarContrasenia_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtPassword.Text) && !string.IsNullOrEmpty(txtPasswordConfirm.Text)) { if (txtPassword.Text == txtPasswordConfirm.Text) { if (LogicaUsuarios.GenerateMD5(txtPassword.Text) != Session["contrseniaUsuario"].ToString()) { TBLUSUARIOS usuarioCambiar = (TBLUSUARIOS)Session["usuarioRecuperar"]; LogicaUsuarios.cambiarContrasenia(usuarioCambiar, LogicaUsuarios.GenerateMD5(txtPassword.Text)); Session["toastTitulo"] = "Recuperación de contraseña exitosa."; Session["toastMensaje"] = "Ingrese nuevamente con su nueva contraseña."; Session["toastClass"] = "success"; Response.Redirect("LoginPage.aspx"); } else { mostrarToast("Misma contrasenia", "La contraseña nueva no puede ser la misma a la que desea recuperar", "Error", 5000); } } } }
public UsuarioVM() { // Initialise the entity or inserts will fail Usuario = new TBLUSUARIOS(); }
private void ingresar() { if (string.IsNullOrEmpty(txtUsername.Text)) { mostrarToast("Advertencia", "No deje vácio el nombre de usuario", "Warning"); return; } if (string.IsNullOrEmpty(txtPassword.Text)) { mostrarToast("Advertencia", "No deje vácio el campo de contraseña", "Warning"); return; } bool existeNombre = LogicaUsuarios.autenticaNombreUsuario(txtUsername.Text); bool existeUsuario = LogicaUsuarios.autenticar(txtUsername.Text, LogicaUsuarios.GenerateMD5(txtPassword.Text)); TBLUSUARIOS usuarioExistente = new TBLUSUARIOS(); if (existeNombre) { usuarioExistente = LogicaUsuarios.buscarXUsuario(txtUsername.Text); if (!string.IsNullOrEmpty(usuarioExistente.FOTO_PATH_USUARIO)) { string filePath = usuarioExistente.FOTO_PATH_USUARIO; cambiarImagen(filePath); } else { cambiarImagen(pathDefaultAvatar); } comprobarEstadoUsuario(usuarioExistente); if (existeUsuario) { TBLUSUARIOS usuario = new TBLUSUARIOS(); try { usuario = LogicaUsuarios.autenticarXLogin(txtUsername.Text, LogicaUsuarios.GenerateMD5(txtPassword.Text)); } catch (Exception ex) { mostrarToast("Error", "Error: " + ex.Message, "Error"); throw; } int rolUsuario = usuario.TBLROLE_ID; char estadoUsuario = usuario.ESTADO_USUARIO; Session["nomUsuario"] = usuario.NOMBRE_USUARIO.ToString(); Session["estadoUsuario"] = usuario.ESTADO_USUARIO.ToString(); Session["passUsuario"] = usuario.PASS_USUARIO.ToString(); Session["usuUsuario"] = usuario.USU_USUARIO.ToString(); if (estadoUsuario == 'A') { switch (rolUsuario) { case 1: //mostrarToast("Administrador", "Este es administrador", "Success", 1000); Session["tipoUsuario"] = "Administrador"; Response.Redirect("~/HomePage.aspx"); break; case 2: //mostrarToast("Usuario", "Este es usuario", "Success", 1000); Session["tipoUsuario"] = "Usuario"; Response.Redirect("~/HomePage.aspx"); break; default: mostrarToast("Error", "No tiene - error", "Error", 1000); break; } } } else { intentos = (contador + (Convert.ToInt32(Session["count"]))).ToString(); Session["countOld"] = intentos.ToString(); if (Convert.ToInt32(intentos) >= 3) { try { LogicaUsuarios.bloquearUsu(usuarioExistente); mostrarToast("Máximo de intentos", "Su usuario ha sido bloqueado por máximo de intentos permitidos (3). Consulte con el administrador.", "Error", 4000); Session.Clear(); btnLogin.Visible = false; } catch (Exception ex) { mostrarToast("Error", "Error al bloquear usuario: " + ex.Message, "Error", 6000); } } else { mostrarToast("Usuario o contraseña incorrectos", "Intentos restantes: " + intentos, "Warning", 2000); } } } else { mostrarToast("El usuario no existe", "Usuario Inexistente", "Warning", 1000); cambiarImagen(pathDefaultAvatar); } }