public async Task <ActionResult> CambiarClave(NuevaClaveViewModel model) { try { if (ModelState.IsValid) { int?usuarioId = ManejadorSessionAcceso.getSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion) as int?; if (usuarioId.HasValue && usuarioId.Value > 0) { //Cambiar Clave var loginResult = await LoginManager.ChangePasswordAsync(usuarioId.Value, model.Password); if (loginResult.Result == LoginResultType.SucessAuthentication) { var usuario = loginResult.User; //Si unicamente existe un modulo if (usuario.Modulos.Count == 1) { var moduloDefault = usuario.Modulos.FirstOrDefault(); var mensaje = string.Format("El usuario {0} ingresa por defecto con el codigo de modulo {1} , fecha y hora: {2}", usuario, moduloDefault.Codigo , Application.getDateTime()); return(await AutentificarUsuario(usuario, moduloDefault)); } else if (usuario.Modulos.Count > 1) { Log.InfoFormat(string.Format("El usuario [{0}], posee varios modulos ", loginResult.User.Cuenta)); //Guardar en sesion, la cuenta que ya sido autentificada ManejadorSessionAcceso.setSession(ManejadorSessionAcceso.EnumerableSessionAcceso.usuario_id_pasado_autentificacion, usuario.Id); return(RedirectToAction("SeleccionarModulo")); } else if (usuario.Modulos.Count == 0) { Log.ErrorFormat("Sistema. El usuario no posee modulos asociadas"); ModelState.AddModelError(string.Empty, "El usuario no posee modulos asociadas"); } } ModelState.AddModelError("", loginResult.Result.ToString()); } else { return(RedirectToAction("Ingreso", new { msg = "Ingrese sus credenciales" })); } } } catch (Exception ex) { var result = ManejadorExcepciones.HandleException(ex); Log.ErrorFormat(result.Message); ModelState.AddModelError("", result.Message); } return(View(model)); }