Пример #1
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            try
            {
                // Verification.
                if (ModelState.IsValid)
                {
                    var auth = new FirebaseAuthProvider(new FirebaseConfig(ApiKey));
                    var ab   = await auth.SignInWithEmailAndPasswordAsync(model.Email, model.Password);

                    string token = ab.FirebaseToken;
                    var    user  = ab.User;
                    password   = model.Password;
                    UserGlobal = model.Email;
                    if (token != "")
                    {
                        TbHistorial registro = new TbHistorial();
                        registro.detalle = "el usuario " + UserGlobal + " inició sesión";
                        registro.fecha   = DateTime.Now.ToString();
                        int rol = cUsuarios.ObtenerIdRol(model.Email);
                        if (rol == 1)
                        {
                            this.SignInUser(user.Email, token, false);
                            cUsuarios.InsertarHistorial(registro);
                            TbUsuarios.setUsuarioActual(cUsuarios.Buscar(cUsuarios.ObtenerId(UserGlobal)));
                            TbUsuarios usuario = TbUsuarios.usuarioActual;
                            usuario.contrasenna = model.Password;
                            usuario.estado      = true;
                            cUsuarios.Actualizar(usuario);
                            return(this.RedirectToIndex("Admin_Users", "TbUsuarios"));
                        }
                        else if (rol == 2)
                        {
                            this.SignInUser(user.Email, token, false);
                            cUsuarios.InsertarHistorial(registro);
                            TbUsuarios.setUsuarioActual(cUsuarios.Buscar(cUsuarios.ObtenerId(UserGlobal)));
                            TbUsuarios usuario = TbUsuarios.usuarioActual;
                            usuario.contrasenna = model.Password;
                            usuario.estado      = true;
                            cUsuarios.Actualizar(usuario);
                            return(this.RedirectToIndex("Profile", "Usuario"));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError(model.Password, "Invalid username or password.");
                    }
                }
            }
            catch (FirebaseAuthException fae)
            {
                ModelState.AddModelError(string.Empty, "Usuario o contraseña incorrectas");
            }
            return(this.View(model));
        }
Пример #2
0
 public void InsertarHistorial(TbHistorial registro)
 {
     try
     {
         int lista = cantidadRegistros();
         if (lista > 0)
         {
             registro.Id = lista + 1;
         }
         else
         {
             registro.Id = 1;
         };
         client.SetAsync("TbHistorial/" + registro.Id, registro);
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }
Пример #3
0
        public async Task <ActionResult> SignUp(SignUpModel model)
        {
            try
            {
                string        chars      = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                char[]        caracteres = chars.ToCharArray();
                Random        rnd        = new Random();
                StringBuilder sb         = new StringBuilder();

                for (int i = 0; i < 8; i++)
                {
                    int randomIndex = rnd.Next(chars.Length);
                    sb.Append(caracteres.GetValue(randomIndex));
                }
                var auth = new FirebaseAuthProvider(new FirebaseConfig(ApiKey));
                var a    = await auth.CreateUserWithEmailAndPasswordAsync(model.Email, sb.ToString(), model.Usuario, true);

                password   = model.Password;
                UserGlobal = model.Email;
                TbUsuarios usuario = new TbUsuarios();
                usuario.nombre      = model.nombre;
                usuario.apellidos   = model.apellidos;
                usuario.correo      = model.Email;
                usuario.telefono    = model.telefono;
                usuario.IDRol       = 2;
                usuario.contrasenna = sb.ToString();
                usuario.foto        = "https://firebasestorage.googleapis.com/v0/b/bd-tmc.appspot.com/o/fotosDePerfil%2FClipartKey_809592.png?alt=media&token=9ba3f041-e374-4a18-b465-b870ef5effa2";
                TbHistorial registro = new TbHistorial();
                registro.detalle = "se registro un nuevo usuario: " + UserGlobal;
                registro.fecha   = DateTime.Now.ToString();
                cUsuarios.Insertar(usuario);
                cUsuarios.InsertarHistorial(registro);
                await auth.SendPasswordResetEmailAsync(model.Email);

                ViewBag.Message = "Bienvenido " + model.nombre + "! ";
                ViewBag.Message = ViewBag.Message + "Para establecer su contraseña ingrese a su correo electrónico. " +
                                  "Por el momento, su contraseña es: " + sb.ToString();
                //Seding Password to email
                string nombre = usuario.nombre;
                System.Net.Mail.MailMessage mmsg = new System.Net.Mail.MailMessage();
                mmsg.To.Add(usuario.correo);
                mmsg.Subject         = "Establecer tu contraseña de Sistema TMC";
                mmsg.SubjectEncoding = System.Text.Encoding.UTF8;
                mmsg.BodyEncoding    = System.Text.Encoding.UTF8;
                mmsg.IsBodyHtml      = true;
                mmsg.AlternateViews.Add(NewPasswordEmail(nombre, sb.ToString()));
                mmsg.From = new System.Net.Mail.MailAddress("*****@*****.**");

                System.Net.Mail.SmtpClient cliente = new System.Net.Mail.SmtpClient();
                cliente.EnableSsl = true;
                //cliente.UseDefaultCredentials = false;
                cliente.Credentials = new System.Net.NetworkCredential("*****@*****.**", "Tumaestro2020");
                cliente.Host        = "smtp.gmail.com";
                cliente.Port        = 25;
                cliente.Send(mmsg);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Ha ocurrido un error. Intente de nuevo");
            }
            return(View());
        }
Пример #4
0
 public void InsertarHistorial(TbHistorial registro)
 {
     vUsuarios.InsertarHistorial(registro);
 }