public async Task <Respuesta> CambiarPasswordAsync(string urlBase, string servicePrefix, string controller, CambiarPasswordRequest cambiarPasswordPeticion, string tokenType, string accessToken) { try { var request = JsonConvert.SerializeObject(cambiarPasswordPeticion); var content = new StringContent(request, Encoding.UTF8, "application/json"); var client = new HttpClient { BaseAddress = new Uri(urlBase) }; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, accessToken); var url = $"{servicePrefix}{controller}"; var response = await client.PostAsync(url, content); var answer = await response.Content.ReadAsStringAsync(); var obj = JsonConvert.DeserializeObject <Respuesta>(answer); return(obj); } catch (Exception ex) { return(new Respuesta { EsExitoso = false, Mensaje = ex.Message, }); } }
public async Task <ActionResult <Usuario> > CambiarPassword([FromBody] CambiarPasswordRequest cambiarPasswordRequest) { Usuario user = modelo.CambiarPassword(cambiarPasswordRequest.password, cambiarPasswordRequest.token); if (user != null) { return(user); } return(Unauthorized()); }
public async Task <ActionResult <Respuesta> > CambiarPassword([FromBody] CambiarPasswordRequest request) { if (!ModelState.IsValid) { return(BadRequest(new Respuesta { EsExitoso = false, Mensaje = "Petición incorrecta.", Resultado = null })); } var user = await this.usuarioHelper.GetUserByEmailAsync(request.eMail); if (user == null) { return(BadRequest(new Respuesta { EsExitoso = false, Mensaje = "El mail no corresponde a ningún usuario.", Resultado = null })); } var result = await this.usuarioHelper.CambiarPasswordAsync(user, request.oldPassword, request.newPassword); if (!result.Succeeded) { return(BadRequest(new Respuesta { EsExitoso = false, Mensaje = result.Errors.FirstOrDefault().Description, Resultado = null })); } return(this.Ok(new Respuesta { EsExitoso = true, Mensaje = "La password a sido cambiada.", Resultado = null })); }
public async Task <Response> CambiarPassword( string urlBase, string servicePrefix, string controller, string tokenType, string accessToken, CambiarPasswordRequest cambiarPasswordRequest) { try { var request = JsonConvert.SerializeObject(cambiarPasswordRequest); var content = new StringContent(request, Encoding.UTF8, "application/json"); var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, accessToken); client.BaseAddress = new Uri(urlBase); var url = string.Format("{0}{1}", servicePrefix, controller); var response = await client.PostAsync(url, content); if (!response.IsSuccessStatusCode) { return(new Response { IsSuccess = false, }); } return(new Response { IsSuccess = true, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = ex.Message, }); } }
private async void CambiarPassword() { if (string.IsNullOrEmpty(this.ActualPassword)) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "Introduzca su Contraseña.", "Aceptar"); return; } if (this.ActualPassword.Length < 8 || this.ActualPassword.Length > 20) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "La Contraseña debe tener entre 8 y 20 caracteres.", "Aceptar"); return; } if (!RegexUtilities.ValidarPassword(this.ActualPassword)) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "Las contraseñas deben tener al menos un carácter que no sea una letra ni un dígito, " + "al menos una letra en minúscula ('a'-'z') y al menos una letra en mayúscula ('A'-'Z').", "Aceptar"); return; } if (this.ActualPassword != MainViewModel.GetInstance().Componente.Password) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "La contraseña actual es incorrecta.", "Aceptar"); return; } if (string.IsNullOrEmpty(this.NuevoPassword)) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "Introduzca su nueva Contraseña.", "Aceptar"); return; } if (this.NuevoPassword.Length < 8 || this.NuevoPassword.Length > 20) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "La nueva Contraseña debe tener entre 8 y 20 caracteres.", "Aceptar"); return; } if (!RegexUtilities.ValidarPassword(this.NuevoPassword)) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "Las contraseñas deben tener al menos un carácter que no sea una letra ni un dígito, " + "al menos una letra en minúscula ('a'-'z') y al menos una letra en mayúscula ('A'-'Z').", "Aceptar"); return; } if (this.NuevoPassword != this.Confirmacion) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "La nueva Contraseña y la confirmación no coinciden.", "Aceptar"); return; } this.IsRunning = true; this.IsEnabled = false; var connection = await this.apiService.CheckConnection(); if (!connection.IsSuccess) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", connection.Message, "Aceptar"); return; } var request = new CambiarPasswordRequest { ActualPassword = this.ActualPassword, Email = MainViewModel.GetInstance().Componente.Email, NuevoPassword = this.NuevoPassword, }; var apiBase = Application.Current.Resources["APIBase"].ToString(); var response = await this.apiService.CambiarPassword( apiBase, "/api", "/Componentes/CambiarPassword", MainViewModel.GetInstance().Token.TokenType, MainViewModel.GetInstance().Token.AccessToken, request); if (!response.IsSuccess) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Error", "No se pudo cambiar la contraseña. Intentalo más tarde.", "Aceptar"); return; } MainViewModel.GetInstance().Componente.Password = this.NuevoPassword; this.dataService.Update(MainViewModel.GetInstance().Componente); this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( "Confirmación", "Contraseña modificada correctamente.", "Aceptar"); await App.Navigator.PopAsync(); }