//[AllowAnonymous] public async Task <ActionResult> ValidaContraseniaExternal(validarContraseniaModel model) { if (ModelState.IsValid) { try { //Ejecuto los valores en el SP var response = bd.SP_ValidarDatosRestablecimientoContrasenia(model.id, model.token).First(); // await bd.SaveChangesAsync(); //valido que el procedimiento se ejecute de manera correcta if (response.codigo != 200) { //Returno la vista principal no hay aviso alguno ya que peude que la pagina pueda estar bajo ataque //cierro session FormsAuthentication.SignOut(); Session.Abandon(); return(RedirectToAction("Index")); } else if (response.codigo == 200) { //cierro session FormsAuthentication.SetAuthCookie(response.idusuario.ToString(), false); //creo un array a partir del json devuelto por la api para tratarlo desde aca y poder enviar los diferentes errores var json = JsonConvert.SerializeObject(response.idusuario, Formatting.Indented); //creo un json dinamico para enviarlo a la vista dynamic dynJson = JsonConvert.DeserializeObject(json); ViewBag.TokenP = response.idusuario; return(View("NuevaContrasenia", string.Empty)); } else { //envio error a la api logs errores //TODO //envio un mensaje al usuario ModelState.AddModelError(string.Empty, "La plataforma no esta respondiendo a su solicitud, por favor intente mas tarde"); FormsAuthentication.SignOut(); Session.Abandon(); } } catch (Exception e) { //cierro session FormsAuthentication.SignOut(); Session.Abandon(); // envio error a la api logs errores //TODO //envio a la carpeta logs APIS.LogsController log = new APIS.LogsController(e.ToString()); log.createFolder(); //envio error mensaje al usuario ModelState.AddModelError(string.Empty, "Estamos presentando dificultades en el momento por favor intente mas tarde"); } } return(View("Index")); }
//[AllowAnonymous] public async Task <ActionResult> ValidaContraseniaExternal(validarContraseniaModel model) { if (ModelState.IsValid) { try { //Ejecuto los valores en el SP var response = db.SP_ValidarDatosRestablecimientoContrasenia(model.id, model.token).First(); // await db.SaveChangesAsync(); //valido que el procedimiento se ejecute de manera correcta if (response.codigo != 200) { ModelState.AddModelError(string.Empty, "El token no coincide con los datos del usuario plataforma"); //TODO ajustar mensaje en la bases de datos var dynJson = "{\"codigo\":401,\"tipo\":\"error\",\"mensaje\":\"El token esta vencido o los datos de recuperación no coinciden con los datos del usuario registrado en la plataforma.\"}"; //envio mensaje TempData["mensaje"] = dynJson; return(RedirectToAction("Index")); } else if (response.codigo == 200) { Console.WriteLine(response); //creo una session vacia para que el formulario pase FormsAuthentication.SetAuthCookie("", false); //creo un array a partir del json devuelto por la api para enviarlo a la vista en un ID var json = JsonConvert.SerializeObject(response.idusuario, Formatting.Indented); //creo un json dinamico para enviarlo a la vista dynamic dynJson = JsonConvert.DeserializeObject(json); ViewBag.TokenP = response.idusuario; return(View("NuevaContrasenia", string.Empty)); } else { // envio error a la api logs errores //envio un mensaje al usuario ModelState.AddModelError(string.Empty, "La plataforma no esta respondiendo a su solicitud, por favor intente mas tarde"); AntiForgeryConfig.SuppressIdentityHeuristicChecks = true; return(Logout()); /*FormsAuthentication.SignOut(); * Session.Abandon();*/ } } catch (Exception e) { // envio error a la api logs errores //envio a la carpeta logs APIS.LogsController log = new APIS.LogsController(e.ToString()); log.createFolder(); //envio error mensaje al usuario ModelState.AddModelError(string.Empty, "Estamos presentando dificultades en el momento por favor intente mas tarde"); //cierro session return(Logout()); /*AntiForgeryConfig.SuppressIdentityHeuristicChecks = true; * FormsAuthentication.SignOut(); * Session.Abandon();*/ } } //return RedirectToAction("Index"); return(Logout()); }