Ejemplo n.º 1
0
 public ActionResult CambiarClave()
 {
     if (Request.Cookies[cookie_name] != null)
     {
         if (funcion.valid_cookie(Request.Cookies[cookie_name].Value))
         {
             ViewBag.usuario = funcion.get_username_in_cookie(Request.Cookies[cookie_name].Value);
             if (TempData["mensaje"] != null)
             {
                 ViewBag.mensaje = TempData["mensaje"].ToString();
             }
             var          contenido = Request.Cookies[cookie_name].Value;
             string       usuario   = funcion.get_username_in_cookie(contenido);
             CambiarClave model     = new CambiarClave {
                 usuario = usuario
             };
             return(View("CambiarClave", model));
         }
         else
         {
             return(RedirectToAction("LogOn", "Login"));
         }
     }
     else
     {
         return(RedirectToAction("LogOn", "Login"));
     }
 }
Ejemplo n.º 2
0
        public ActionResult CambiarClave()
        {
            var id = UsuarioLogeadoSession.IdUsuario;

            ViewBag.idUsuario = id;
            DAL.Modelo.CambiarClave cambiaClave = new CambiarClave();
            return(View());
        }
Ejemplo n.º 3
0
        private void cambiarContraseñaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CambiarClave cc = new CambiarClave(usuarioConectado.Id);

            cc.MdiParent = this;
            cc.Activate();
            cc.Show();
        }
Ejemplo n.º 4
0
        public ActionResult CambiarClave(int id)
        {
            CambiarClave cambiaClave = new CambiarClave()
            {
                UsuaCodi = id
            };

            return(View(cambiaClave));
        }
Ejemplo n.º 5
0
        private void SlLOlvidasteContasena_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            /*cambiarContraseña c = new cambiarContraseña();
             * c.Show();
             * this.Hide();*/
            CambiarClave cambiarClave = new CambiarClave();

            cambiarClave.Show();
            this.Hide();
        }
Ejemplo n.º 6
0
        public static RespuestaTransaccion CambiarClaveReset(CambiarClave usuario)
        {
            try
            {
                if (usuario.ContraseniaNueva != usuario.ConfirmarContrasenia)
                {
                    return new RespuestaTransaccion {
                               Estado = false, Respuesta = Mensajes.MensajeValidacionContrasenias
                    }
                }
                ;
                else
                {
                    if (usuario.ContraseniaNueva.Length < 8)
                    {
                        return new RespuestaTransaccion {
                                   Estado = false, Respuesta = Mensajes.MensajeLongitudContrasenia
                        }
                    }
                    ;
                    else
                    {
                        var claveNueva = Cryptography.Encrypt(usuario.ContraseniaNueva);

                        //Datos actuales del usuario
                        Usuario usuarioActual = new Usuario();
                        usuarioActual            = db.Usuario.Find(usuario.UsuaCodi);
                        usuarioActual.ResetClave = false;
                        usuarioActual.Clave      = claveNueva;

                        db.Entry(usuarioActual).State = EntityState.Modified;
                        db.SaveChanges();

                        //db.EnviarCorreoUsuarioCambioClave(usuarioActual.IdUsuario);
                        //db.SaveChanges();

                        return(new RespuestaTransaccion {
                            Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                return(new RespuestaTransaccion {
                    Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " " + ex.ToString()
                });

                throw;
            }
        }
Ejemplo n.º 7
0
        public ActionResult CambiarClave(CambiarClave formulario)
        {
            RespuestaTransaccion respuesta = new RespuestaTransaccion {
                Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida, EntidadID = 0
            };

            try
            {
                Resultado = UsuarioDAL.CambiarClaveReset(formulario);
                if (Resultado.Estado)
                {
                    SessionHelper.DestroyUserSession();
                    Session.Clear();

                    string enlace       = GetUrlSitio(Url.Action("Index", "Login"));
                    var    datosusuario = UsuarioDAL.ConsultarUsuario(Convert.ToInt32(formulario.UsuaCodi));
                    string body         = GetEmailTemplate("TemplateCambioClaveUsuario");
                    body = body.Replace("@ViewBag.EnlaceDirecto", enlace);
                    body = body.Replace("@ViewBag.EnlaceSecundario", enlace);
                    body = body.Replace("@ViewBag.Usuario", datosusuario.NombresApellidos);

                    //Siempre que un usuario se haya creado con éxito.

                    var notificacion = NotificacionesDAL.CrearNotificacion(new Notificaciones
                    {
                        NombreTarea                  = "Cambio de Usuario",
                        DescripcionTarea             = "El usuario cambio de clave.",
                        NombreEmisor                 = nombreCorreoEmisor,
                        CorreoEmisor                 = correoEmisor,
                        ClaveCorreo                  = claveEmisor,
                        CorreosDestinarios           = datosusuario.MailCorporativo,
                        AsuntoCorreo                 = "CAMBIO DE CLAVE",
                        NombreArchivoPlantillaCorreo = TemplateNotificaciones,
                        CuerpoCorreo                 = body,
                        AdjuntosCorreo               = "",//ruta,
                        FechaEnvioCorreo             = DateTime.Now,
                        Empresa = "",
                        Canal   = CanalNotificaciones,
                        Tipo    = "USUARIO",
                    });
                }
                return(Json(new { Resultado }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                Resultado.Respuesta = Resultado.Respuesta + ";" + ex.Message;
                return(Json(new { Resultado }, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 8
0
 private void lnkCambiarClave_OpenLink(object sender, DevExpress.XtraEditors.Controls.OpenLinkEventArgs e)
 {
     try
     {
         Cursor.Current = Cursors.WaitCursor;
         using (var frm = new CambioClave(CambiarClave.GetCambiarClave(
                                              new FiltroUsuarios
         {
             Usuario = txtUser.Text,
             Dominio = cboDominio.Text
         })))
         {
             if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 XtraMessageBox.Show(
                     "Contraseña cambiada con éxito!",
                     Text,
                     MessageBoxButtons.OK,
                     MessageBoxIcon.Information);
                 txtPass.Focus();
             }
         }
     }
     catch (DataPortalException ex)
     {
         XtraMessageBox.Show(
             ex.BusinessException.Message,
             Text,
             MessageBoxButtons.OK,
             MessageBoxIcon.Information);
     }
     catch (Exception ex)
     {
         XtraMessageBox.Show(
             ex.Message,
             Text,
             MessageBoxButtons.OK,
             MessageBoxIcon.Information);
     }
     finally
     {
         Cursor.Current = Cursors.Default;
     }
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Cambia la contraseña de un usuario externo, si el campo es vacio se crea una contraseña, de lo contrario registra al constraseña enviada.
        /// </summary>
        /// <param name="request">Constraseña a registrar</param>
        /// <returns>Contraseña generada</returns>
        public static ResponseCambioClave CambiarClaveWeb(RequestCambioClave request)
        {
            ResponseCambioClave response = new ResponseCambioClave();
            var publicCrypter            = new SimpleInteroperableEncryption();

            var info = GetInfoBasicaUsuariosByCodigo(new RequestInfoBasicaUsuarioDTO
            {
                CodigoUsuario = request.CodigoUsuario,
                Dominio       = request.Dominio
            });

            if (!info.Resultado.Success)
            {
                throw new InvalidOperationException("El usuario no existe!");
            }

            if (info.InfoBasica.Tipo != "E")
            {
                throw new InvalidOperationException("Sólo los usuarios externos pueden cambiar su contraseña");
            }

            //SI SE HA SOLICITADO CONTRASEÑA, SE VALIDA LA CONTRASEÑA ANTIGUA
            if (request.TipoCambioClave == TipoCambioClave.Ui)
            {
                // Comprobamos si el campo de Respuesta Secreta se encuentra lleno para validar
                // que el usuario se olvidó se contraseña y posteriormente hacer el cambio.
                if (string.IsNullOrEmpty(request.RespuestaSecreta))
                {
                    ResponseLoginUsuario responseLogin = Login(new RequestLogin
                    {
                        CodigoUsuario      = request.CodigoUsuario,
                        Clave              = publicCrypter.Decrypt(request.ClaveAntigua),
                        Dominio            = request.Dominio,
                        AcronimoAplicacion = request.Acronimo
                    });

                    if (!responseLogin.Resultado.Success)
                    {
                        throw new Exception("La contraseña es incorrecta.");
                    }
                }
                else
                {
                    // Comprobamos que la respuesta a la pregunta Secreta sea válida.
                    using (var ctx = new SeguridadEntities())
                    {
                        var clave = (from clav in ctx.Claves
                                     where clav.IdUsuario == info.InfoBasica.IdUsuario &&
                                     clav.Ultimo
                                     select new { RespuestaSecreta = clav.Respuesta }).FirstOrDefault();
                        if (clave != null)
                        {
                            if (clave.RespuestaSecreta != GRCrypto.Encriptar(request.RespuestaSecreta))
                            {
                                throw new SecurityException("La respuesta secreta no coincide!");
                            }
                        }
                    }
                }
            }

            // En caso sea un reseteo de clave
            if (request.TipoCambioClave == TipoCambioClave.Sys)
            {
                request.ClaveAntigua = request.ClaveNuevaConfirmada = request.ClaveNueva = publicCrypter.Decrypt(request.ClaveNueva);
            }
            else
            {
                //DESENCRIPTAR LA CONTRASENIA
                request.ClaveAntigua         = publicCrypter.Decrypt(request.ClaveAntigua);
                request.ClaveNueva           = publicCrypter.Decrypt(request.ClaveNueva);
                request.ClaveNuevaConfirmada = publicCrypter.Decrypt(request.ClaveNuevaConfirmada);
            }

            Result result = ValidacionCambiarClaveWeb(request);

            if (result.Success == false)
            {
                throw new Exception(result.Message);
            }

            bool primeraClave = false;

            try
            {
                //Validamos si tiene Clave registrada.
                GRPrincipal.Load(request.CodigoUsuario, request.Dominio);
            }
            catch (DataPortalException ex)
            {
                if (ex.BusinessException != null)
                {
                    if (ex.BusinessException.GetType() == typeof(UsuarioSinClaveException))
                    {   //SI LA EXCEPCION ES USUARIOSINCLAVE SE LE CREA UNA CLAVE
                        ActivarUsuario activarUsuario = ActivarUsuario.GetActivarUsuario(new FiltroUsuarios
                        {
                            Usuario = request.CodigoUsuario, Dominio = request.Dominio
                        });

                        activarUsuario.PreguntaSecreta = activarUsuario.RespuestaSecreta = request.CodigoUsuario;
                        activarUsuario.ClaveSecreta    = activarUsuario.ConfirmarClave = request.ClaveNueva;

                        activarUsuario.Save();
                        primeraClave = true;
                    }
                }
            }

            if (!primeraClave)
            {
                var cambiarClave = CambiarClave.GetCambiarClave(new FiltroUsuarios
                {
                    Usuario = request.CodigoUsuario, Dominio = request.Dominio
                });
                cambiarClave.ClaveNueva       = cambiarClave.ConfirmarClave = request.ClaveNueva;
                cambiarClave.RespuestaSecreta = string.IsNullOrEmpty(request.RespuestaSecreta)
                        ? cambiarClave.SecretAnswer : request.RespuestaSecreta;
                CambiarClave.ByPassClave = true;
                cambiarClave.Save();
            }

            response.Correo        = info.InfoBasica.Correo;
            response.Nombres       = info.InfoBasica.NombresCompletos;
            response.CodigoUsuario = request.CodigoUsuario;

            return(response);
        }
Ejemplo n.º 10
0
 public CambioClave(CambiarClave cambiarClave)
 {
     InitializeComponent();
     this.cambiarClave = cambiarClave;
     cambiarClaveBindingSource.DataSource = cambiarClave;
 }
Ejemplo n.º 11
0
        public static RespuestaTransaccion CambiarClave(CambiarClave cambiarClave)
        {
            try
            {
                //validar las contraseña nuevas coincidan
                if (cambiarClave.ContraseniaNueva != cambiarClave.ConfirmarContrasenia)
                {
                    return(new RespuestaTransaccion {
                        Estado = false, Respuesta = Mensajes.MensajeValidacionContrasenias
                    });
                }
                else
                {
                    if (cambiarClave.ContraseniaNueva.Length < 8)
                    {
                        return(new RespuestaTransaccion {
                            Estado = false, Respuesta = Mensajes.MensajeLongitudContrasenia
                        });
                    }
                    else
                    {
                        Usuario usuario = db.ConsultarUsuario(Convert.ToInt32(cambiarClave.idUsuario)).FirstOrDefault() ?? new Usuario();

                        //hacer md5 a la clave actual
                        var claveActual = Cryptography.Encrypt(cambiarClave.ContraseniaActual);
                        var claveNueva  = Cryptography.Encrypt(cambiarClave.ContraseniaNueva);

                        //Validar que la calve nueva sea diferente a la anterior
                        if (cambiarClave.ContraseniaActual == cambiarClave.ContraseniaNueva)
                        {
                            return(new RespuestaTransaccion {
                                Estado = false, Respuesta = Mensajes.MensajeCambioContaseña
                            });
                        }
                        else
                        {
                            //Validar las claves si coinciden
                            if (claveActual == usuario.Clave)
                            {
                                usuario.Clave = claveNueva;

                                // Por si queda el Attach de la entidad y no deja actualizar
                                var local = db.Usuario.FirstOrDefault(f => f.IdUsuario == usuario.IdUsuario);
                                if (local != null)
                                {
                                    db.Entry(local).State = EntityState.Detached;
                                }

                                db.Entry(usuario).State = EntityState.Modified;
                                db.SaveChanges();

                                //db.EnviarCorreoUsuarioCambioClave(usuario.IdUsuario);
                                db.SaveChanges();

                                return(new RespuestaTransaccion {
                                    Estado = true, Respuesta = Mensajes.MensajeTransaccionExitosa
                                });
                            }
                            else
                            {
                                return(new RespuestaTransaccion {
                                    Estado = false, Respuesta = Mensajes.MensajeValidacionContraseniaActual
                                });
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(new RespuestaTransaccion {
                    Estado = false, Respuesta = Mensajes.MensajeTransaccionFallida + " " + ex.ToString()
                });
            }
        }