Example #1
0
        public ActionResult PasswordRecovery(Usuario model)
        {
            if (ModelState.IsValid)
            {
                var username = CustomIdentity.GetIdUsuario(model.login);

                if (username != -1)
                {
                    //recuperamos el usuario
                    var usu = ConsultasBbdd.GetUsuariobyId(username);

                    // enviamos el email con la url magica..
                    var token   = Encodificacion.EncodeMessageWithPassword(usu.login, usu.password);
                    var retorno = Notificaciones.SendPasswordRetrieval(model.login, token);
                    if (!retorno)
                    {
                        ViewBag.error = "ErrorEnviandoNotification";
                        return(View());
                    }

                    return(RedirectToAction("EmailEnviado", "Seguridad"));
                }

                System.Diagnostics.Trace.WriteLine(String.Format("*** WARNING:  A user tried to retrieve their password but the email address used '{0}' does not exist in the database.", model.login));
                ViewBag.error = "error";
                return(View());
            }

            return(View(model));
        }
Example #2
0
        public ActionResult Validate(string email, string token)
        {
            var username = CustomIdentity.GetIdUsuario(email);

            if (username != -1)
            {
                //recuperamos el usuario
                var usu = ConsultasBbdd.GetUsuariobyId(username);

                //decodificamos
                var emaildeco = Encodificacion.DecodeMessageWithPassword(token, usu.password);
                //comprobamos que coincide la deco con la de la base de datos
                if (emaildeco == usu.login)
                {
                    //redirigimos a la vista de recuperar password
                    var pass = new CambioPasswordVista {
                        UsuarioActual = usu.login
                    };

                    return(View(pass));
                }
                //las passwords no coinciden
                return(RedirectToAction("ErrorRecovery", "Seguridad"));
            }
            //esta mal el email
            return(RedirectToAction("ErrorRecovery", "Seguridad"));
        }