public ActionResult ValidarCodigoRestablecerPassword(string email, string codigo) { Respuesta R = new Respuesta(); string emailCode64 = Funcion.ConvertirBase64(email); bool resultado = Funcion.EmailEsValido(email); if (!resultado) { //Email no valido R = Funcion.RespuestaProceso("Email_No_Valido", emailCode64, null, email + EngineData.EmailNoValido()); return(Json(R)); } string code = Metodo.ObtenerCodigoRestablecerPassword(email).Trim(); codigo = codigo.Trim(); resultado = Funcion.CompareString(code, codigo.Trim()); if (!resultado) { //El codigo ingresado no coincide R = Funcion.RespuestaProceso("Codigo_No_Match", emailCode64, Funcion.ConvertirBase64("1E-9R-2R-8O"), email + EngineData.CodigoNoCoincide()); return(Json(R)); } int act = Metodo.UpdateResetPassword(email, codigo, true); if (act >= 1) { System.Web.HttpContext.Current.Session["Email"] = email; R = Funcion.RespuestaProceso("Exito", emailCode64, null, "Exito"); } else { //Error al validar el codigo Funcion.ConstruirSucesoLog("Error al validar codigo*Home/ValidarCodigoRestablecerPassword*" + email, Metodo); R = Funcion.RespuestaProceso("Error", emailCode64, null, email + EngineData.ErrorInternoServidor()); } return(Json(R)); }
public ActionResult NotificacionRestablecerPassword(string email) { Respuesta R = new Respuesta(); string emailCode64 = Funcion.ConvertirBase64(email); bool resultado = Funcion.EmailEsValido(email); if (!resultado) { //Email no valido R = Funcion.RespuestaProceso("Email_No_Valido", emailCode64, null, email + EngineData.EmailNoValido()); return(Json(R)); } Guid identidad = Metodo.ObtenerIdentidadCliente(email); if (identidad == Guid.Empty) { // Email no registrado R = Funcion.RespuestaProceso("Email_No_Registrado", emailCode64, null, email + EngineData.EmailNoRegistrado()); return(Json(R)); } string codigo = Funcion.ConstruirCodigo(); string enlaze = Funcion.CrearEnlazeRestablecerPassword(Metodo, email, codigo); EstructuraMail model = new EstructuraMail(); model = Funcion.SetEstructuraMailResetPassword(enlaze, email, codigo, model); ResetPassword resetPassword = new ResetPassword(); resetPassword = Funcion.SetResetPassword(email, codigo); resultado = Metodo.InsertarResetPassword(resetPassword); if (!resultado) { // Error insertando codigo R = Funcion.RespuestaProceso("Error_Insertando_Codigo", emailCode64, null, email + EngineData.ErrorInternoServidor()); return(Json(R)); } resultado = Notificacion.EnviarMailNotificacion(model); if (resultado) { R = Funcion.RespuestaProceso("Exito", email, null, email + EngineData.EnvioCodigoRestablecerPassword()); //Envio de codigo restablecer password } else { R = Funcion.RespuestaProceso("Error", email, null, email + EngineData.ErrorEnviandoMail()); //Error enviando notificacion } return(Json(R)); }
public ActionResult State(int Id = 0, string email = "", string identidad = "", string date = "", string status = "", string ide = "", string type = "", string cultureInfo = "", Respuesta K = null) { System.Web.HttpContext.Current.Session["Usuario"] = EngineData.usuarioTemporal; Respuesta R = new Respuesta(); bool resultado = false; Guid guidCliente = Guid.Empty; string emailCode64 = string.Empty; //Validar email if (email != string.Empty && email != null) { if (Funcion.CadenaBase64Valida(email)) { email = Funcion.DecodeBase64(email); } resultado = Funcion.EmailEsValido(email); emailCode64 = Funcion.ConvertirBase64(email); if (!resultado) { if (K.RespuestaAccion != string.Empty && K.RespuestaAccion != null) { R = Funcion.RespuestaProceso(K.RespuestaAccion, emailCode64, null, email + EngineData.EmailNoValido()); } else if (type != string.Empty && type != null) { R = Funcion.RespuestaProceso("Index", emailCode64, null, email + EngineData.EmailNoValido()); } return(View(R)); } } //Validar GUID de identidad if (identidad != string.Empty && identidad != null && type != string.Empty && type != null) { if (type == EngineData.RegisterManager) { guidCliente = Metodo.ObtenerIdentidadGerente(email); } else { guidCliente = Metodo.ObtenerIdentidadCliente(email); } string identificador = Funcion.EncodeMd5(guidCliente.ToString()); resultado = Funcion.CompareString(identidad, identificador); if (!resultado) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("GUID no concuerda*Home/State*" + email, Metodo); return(View(R)); } } //validar tiempo de expiracion del link if (date != string.Empty && date != null && type != string.Empty && type != null) { date = date.Replace('*', ' '); date = date.Replace('+', ' '); date = date.Replace('a', ' '); date = date.Replace('p', ' '); date = date.Replace('m', ' '); date = date.Trim(); Funcion.SetCultureInfo(cultureInfo); //CultureInfo ci = new CultureInfo(cultureInfo); //Thread.CurrentThread.CurrentUICulture = ci; //Thread.CurrentThread.CurrentCulture = ci; DateTime fechaEnvio = Convert.ToDateTime(date); DateTime fechaActivacion = DateTime.UtcNow; resultado = Funcion.EstatusLink(fechaEnvio, fechaActivacion); if (!resultado) { if (type == EngineData.Register) { string contraseña = Metodo.ObtenerPasswordCliente(email); contraseña = contraseña.Replace(email, ""); resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.Register, contraseña); } else if (type == EngineData.Test) { resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.Test); } else if (type == EngineData.RegisterManager) { resultado = Funcion.EnviarNuevaNotificacion(Notificacion, Metodo, email, EngineData.RegisterManager); } R = Funcion.RespuestaProceso("Index", emailCode64, null, EngineData.TiempoLinkExpiro()); return(View(R)); } } //Activacion tiempo de prueba if (type == EngineData.Test) { Cliente client = Funcion.ConstruirActualizarClienteTest(Metodo, email, identidad); int act = Metodo.UpdateClienteTest(client); if (act > 0) { R = Funcion.RespuestaProceso("Contact", emailCode64, null, EngineData.ActivacionExitosa()); } else { R = Funcion.RespuestaProceso("Index", emailCode64, null, EngineData.ActivacionFallida()); } } //Activacion cuenta del cliente else if (type == EngineData.Register) { string password = ide; ActivarCliente model = new ActivarCliente(); model = Funcion.ConstruirActivarCliente(Metodo, email, password); int act = Metodo.ClienteRegistroActivacion(model); if (act >= 1) { R = Funcion.RespuestaProceso("Login", emailCode64, null, EngineData.ActivacionExitosa()); } else { R = Funcion.RespuestaProceso("Login", emailCode64, null, EngineData.ActivacionFallida()); } } // Enviar a restablecer password else if (type == EngineData.ResetPassword) { if (ide == string.Empty || ide == null) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("CODIGO restablecer password vacio*Home/State*" + email, Metodo); return(View(R)); } string codigo = Funcion.DecodeBase64(ide); string code = Metodo.ObtenerCodigoRestablecerPassword(email); resultado = Funcion.CompareString(codigo, code); if (!resultado) { R = Funcion.RespuestaProceso("Open", emailCode64, null, EngineData.ErrorInternoServidor()); Funcion.ConstruirSucesoLog("CODIGO restablecer password no coinciden*Home/State*" + email, Metodo); return(View(R)); } System.Web.HttpContext.Current.Session["Email"] = email; R = Funcion.RespuestaProceso(null, emailCode64, "codeVerify", EngineData.IngreseCodigoVerificacion()); return(RedirectToAction("EditPasswordNotify", "Home", R)); } //Resdireccionar a actualizar el perfil de administrador else if (type == EngineData.RegisterManager) { Gerente G = new Gerente(); G.Email = email; G.Id = EngineData.IdActivacion; return(RedirectToAction("Update", "Manager", G)); } if (K.RespuestaAccion != null) { return(View(K)); } return(View(R)); }