//[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"));
        }
Exemple #2
0
        //[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());
        }