/// <summary> /// Valida que la contraseña actual sea correcta /// </summary> protected void PassPrev(object sender, RemoteValidationEventArgs e) { TextField field = (TextField)sender; // Encripta la contraseña introducida para compararla con la guardada en la base de datos pass = Loguin.Encriptar(field.Text); var = Loguin.ValidateUser(Convert.ToString(Session["Usuario"]), pass); // Verifica que ambos campos de contraseña sean iguales if (var.Access == true) { e.Success = true; field.IndicatorIcon = Icon.Accept; ResourceManager1.RegisterIcon(Icon.Accept); field.ShowIndicator(); } else { e.Success = false; e.ErrorMessage = "Las contraseñas actual no es correcta, verifique que introdujo adecuadamente la contraseña"; } System.Threading.Thread.Sleep(1000); }
/// <summary> /// Se desencadena cuando se presiona en ingresar tras introducir nombre de usuario y contraseña /// </summary> /// <param name="sender">object sender</param> /// <param name="e">EventArgs e</param> protected void btn_Ingresar_Click(object sender, EventArgs e) { // Variable para guardar el password introducido por el usuario, despues de encriptarse string pass; DateTime horaIni = new DateTime(2012, 1, 11, Convert.ToInt32(WebConfigurationManager.AppSettings.Get("horaIni")), 00, 00); DateTime horaFin = new DateTime(2012, 1, 11, Convert.ToInt32(WebConfigurationManager.AppSettings.Get("horaFin")), 59, 59); //Variables var = new Variables(); //Recupera varibles del WS Controles.Variables var = new Controles.Variables(); if (DateTime.Now.TimeOfDay > horaIni.TimeOfDay && DateTime.Now.TimeOfDay < horaFin.TimeOfDay) { if (!this.txtPass.IsEmpty && !this.txtUser.IsEmpty) { // Encripta la contraseña introducida para compararla con la guardada en la base de datos pass = Loguin.Encriptar(txtPass.Text); // Si el resultado de la valicion de usuario mandada a llamar es verdadero, transfiere al formulario default var = Loguin.ValidateUser(txtUser.Text, pass); if (var.Access == true) { // Recupera las variables del WS tras llamar a ValidaUser Session["Ejecutivo"] = var.Ejecut; Session["Activo"] = var.Activ; Session["Estatus"] = var.Estat; Session["Id_Sucursal"] = var.IdSucursal; Session["Usuario"] = txtUser.Text; Session["NombreCompleto"] = var.NombreCompleto; Session["CorreoEjecutivo"] = var.Correo; Session["Permisos"] = var.ListaPermisos; // obtiene el id de usuario de la variable de sesión ejecutivo if (Session["Ejecutivo"] != null) { // Busca los datos asociados al ejecutivo para cargar la cooperativa en una variable de sesión DatUser = busqueda.DatosUser(Convert.ToString(Session["Ejecutivo"])); Session["NoCoop"] = DatUser.IdCoop; Session["Coop"] = DatUser.Coop; Session["NoPlaza"] = DatUser.IdPlaza; Session["Plaza"] = DatUser.Plaza; Session["NoSucursal"] = DatUser.IdSucursal; Session["Sucursal"] = DatUser.Sucursal; Session["RefSuc"] = DatUser.RefSucursal; Session["Ubicacion"] = DatUser.Ubicacion; } else { // Muestra mensaje de que no se pueden recuperar datos, y regresa a pagina de Login Acceso.GeneraMensaje("Alto!!!", "No se puede recuperar la informacion de usuario, </br>vuelva a iniciar sesión en el portal." + "</br>Si el problema persiste, reinicie el explorador o borre las cookies", 'W'); System.Threading.Thread.Sleep(5000); Response.Redirect("Login/Login.aspx"); } if (Session["Coop"] != null) { switch (Convert.ToInt32(Session["NoCoop"])) { case 1: // Caja Popular Mexicana if ((int)(Session["Estatus"]) == 1) Session["Estatus"] = 4; VerificaEstadoUser(); break; case 2: // PRYBE VerificaEstadoUser(); break; case 3: // Caja La Sagrada Familia VerificaEstadoUser(); break; case 4: // Caja San Nicolas VerificaEstadoUser(); break; case 5: // Caja Popular Tata Vasco VerificaEstadoUser(); break; default: // Si no existen restricciones de acceso para la coop verifica estado user para dar el acceso VerificaEstadoUser(); break; } } else { // Muestra mensaje de que no se pueden recuperar datos, y regresa a pagina de Login Acceso.GeneraMensaje("Alto!!!", "No se puede recuperar la informacion de usuario, </br>vuelva a iniciar sesión en el portal." + "</br>Si el problema persiste, reinicie el explorador o borre las cookies", 'W'); System.Threading.Thread.Sleep(5000); Response.Redirect("Login/Login.aspx"); } } else // Si el resultado de la validacion es incorrecto, regresa al formulario de inicio de sesión { // Por cada intento de sesion fallido incrementa el contador if (Session["Bloq"] != null) { Session["Bloq"] = (int)(Session["Bloq"]) + 1; } else { Session["Bloq"] = 1; } /* Lees la variable del contador de intentos fallidos si no es nula * y verifica si se llego al 5to intento fallido */ if (Session["Bloq"] != null) { if ((int)(Session["Bloq"]) > 5) { // Se ejecuta si se tiene el id de ejecutivo en la variable de sesion if (Session["Ejecutivo"] != null) { // Cambia el estatus del ejecutivo a bloqueado Loguin.EstatusUser((int)(Session["Ejecutivo"]), 2); Loguin.InsertLogDanos(Convert.ToInt32(Session["Ejecutivo"]), 1, "ACCESO DENEGADO: Se bloqueo usuario excedio intentos de acceso"); } /* Despliega mensaje que indica que el usuario fue bloqueado por exceso de intentos de * acceso fallidos */ Acceso.GeneraMensaje("Cuenta bloqueada", "Esta cuenta esta bloqueada por razones de seguridad ya que ha intentado entrar mas " + "de 5 veces sin exito. Lamentamos los inconvenientes que esto puede ocasionarle. " + "Comuniquese con PRYBE al Telefono 01 800 251 51 51 para restablecer el acceso a la cuenta", 'W'); } else { // Si no se a llegado al limite de intentos muestra mensaje Acceso.GeneraMensaje("Incorrecto", "Acceso denegado vuelva a intentarlo", 'E'); this.txtPass.Text = ""; } } } } else { Acceso.GeneraMensaje("ACCESO", "No introdujo Usuario y/o Contraseña, vuelva a intentarlo", 'W'); } } else { Acceso.GeneraMensaje("Fuera de horario", "No puede entrar al portal, ya que esta fuera del horario de servicio. " + "El horario de servicio es de " + Convert.ToInt32(WebConfigurationManager.AppSettings.Get("horaIni")) + ":00 Hrs a " + Convert.ToInt32(WebConfigurationManager.AppSettings.Get("horaIni")) + ":00 Hrs de Lunes a Domingo los 365 dias del año", 'I'); } }
/// <summary> /// Actualiza el password del usuario si este se loqueo correctamente, /// y si las caracteristicas de la contraseña son las adecuadas /// </summary> protected void btn_UpdatePass_DirectClick(object sender, DirectEventArgs e) { pass = Loguin.Encriptar(txtPasswordPrev.Text); var = Loguin.ValidateUser(Convert.ToString(Session["Usuario"]), pass); // Verifica que ambos campos de contraseña sean iguales if (var.Access == true) { if (this.txtPasswordField.Text == this.txtCPasswordField.Text && this.txtPasswordField.Text != "" && this.txtCPasswordField.Text != "" && this.txtPasswordField.Text.Length == 8) // Si la validacion se cumple actualiza password y redirecciona al login nuevamente { // Manda llamar el WS para actualizar la contraseña del usuario Loguin.ActualizaPass((int)(Session["Ejecutivo"]), Convert.ToString(Session["Usuario"]), pass, Loguin.Encriptar(this.txtPasswordField.Text)); wdUpdatePass.Hide(); Acceso.GeneraMensaje("Cambio contraseña", "Contraseña cambiada adecuadamente, en su proximo inicio de sesión debera utilizar " + "la nueva contraseña para aceder al portal", 'I'); } else // Si la validacion no se cumple, manda un mensaje diciendo el porque { Acceso.GeneraMensaje("Cambio contraseña", "La contraseña no es valida verifique que introdujo la misma contraseña en ambos " + "campos o que tenga un minimo de 8 caracteres alfanumericos Ejemplo: 'QmG$852y'", 'W'); } } else { Acceso.GeneraMensaje("Cambio contraseña", "La contraseña actual no es valida verifique que introdujo adecuadamente la contraseña", 'E'); } }