Пример #1
0
        public ActionResult Login(Login request)
        {
            //(Login request) to be received from the other side (view_login and mapping follow class Login)
            if (ModelState.IsValid)
            {
                var model = new LoginModel().CheckLogin(request.UserName, request.Password);
                if (model != 0)
                {
                    //create a sesion
                    var sesion = new UserSesion();
                    sesion.ID   = model;
                    sesion.User = request.UserName;

                    Session.Add(Commond.ConstandSesionString.UserSesion, Session);
                    return(RedirectToAction("Index", "Home"));
                }
            }
            else
            {
                ModelState.AddModelError("", "User or Password is wrong!");
            }

            return(View("Login"));
        }
        public async Task <IActionResult> Login(LoginCredentials lc)
        {
            if (ModelState.IsValid)
            {
                //convirtiendo la contrase;a a md5
                var passmd5 = Funciones.CreateMD5(lc.Password);

                //consulta para saber si el usuario existe
                var userlogin = _db.Usuario.Where(u => u.UserAccount == lc.UserAccount).
                                Where(u => u.Password == passmd5).FirstOrDefault();

                //condicion si el usuario existe
                if (userlogin != null)
                {
                    //cargando la informacion del usuario en la clase estatica
                    var rol = _db.UserRole.Where(u => u.UserId == userlogin.Id).FirstOrDefault();
                    LoadDataUser.Id          = userlogin.Id;
                    LoadDataUser.Nombre      = userlogin.Nombre;
                    LoadDataUser.Apellido    = userlogin.Apellido;
                    LoadDataUser.UserAccount = userlogin.UserAccount;
                    LoadDataUser.Email       = userlogin.Email;
                    LoadDataUser.Foto        = userlogin.Foto;
                    LoadDataUser.Rol         = rol.Rol;
                    LoadDataUser.Estado      = userlogin.Estado;
                    UserLogin.Islogin        = true;

                    //asigando valor a las propiedades de inicio de sesion
                    var usersesion = new UserSesion
                    {
                        MacAdress = Funciones.GetMacAdres(),
                        UserId    = userlogin.Id,
                        IsLogin   = "******"
                    };

                    //comprobando si ya el usuario esta registrado en la tabla de sesiones
                    var us = _db.UserSesions.Where(s => s.UserId == userlogin.Id).FirstOrDefault();

                    //si esta registrado en la tabla sesiones
                    if (us != null)
                    {
                        us.MacAdress = Funciones.GetMacAdres();
                        us.UserId    = userlogin.Id;
                        us.IsLogin   = "******";

                        _db.Update(us);
                        await _db.SaveChangesAsync();
                    }
                    //si no esta registrado en la tabla sesionens
                    else
                    {
                        //agregalo a la tabla sesiones
                        _db.Add(usersesion);
                        await _db.SaveChangesAsync();
                    }

                    //redireccionado al inicio
                    return(RedirectToAction("Index", "Proyectos"));
                }

                //si el usuario no existe
                else
                {
                    Funciones.Alerta(

                        "Usuario o Contraseña no validos",
                        "danger",
                        "remove"

                        );

                    //retornando el modelo
                    return(RedirectToAction("LoginUser",
                                            new LoginCredentials
                    {
                        UserAccount = lc.UserAccount
                    }));
                }
            }

            //si el modelo no es valido
            else
            {
                Funciones.Alerta(

                    "Introduce el usuario y la contraseña",
                    "danger",
                    "remove"

                    );

                return(RedirectToAction("LoginUser",
                                        new LoginCredentials
                {
                    UserAccount = lc.UserAccount
                }));
            }
        }
        public async Task <IActionResult> Registrar(Usuario usuario, IFormFile img, string rol)

        {
            if (ModelState.IsValid)
            {
                var userpass = usuario.Password;

                if (VerificarExistenciaUsuario(usuario.UserAccount) == false &&
                    Funciones.VerificarExistenciaEmail(usuario.Email, _db) == false &&
                    Funciones.VeririficarPesodeArchivo(img, 3, "Imagen usuario") == false &&
                    Funciones.VerificarExtencion(img, "png", "jpg", "jpeg", "una Imagen", "Foto Usuario") == false &&
                    VerificarEspacio(usuario.UserAccount) == false

                    )
                {
                    if (img != null)
                    {
                        usuario.Foto = Funciones.SubirArchivo(img, usuario.UserAccount, "FotosPerfil", "screen", _he);
                    }
                    else
                    {
                        usuario.Foto = "Userdefault.png";
                    }

                    usuario.Password    = Funciones.CreateMD5(usuario.Password);
                    usuario.UserAccount = usuario.UserAccount.ToLower();
                    usuario.UserAccount = usuario.UserAccount.Replace(' ', '-');
                    _db.Usuario.Add(usuario);
                    await _db.SaveChangesAsync();

                    var userdata = _db.Usuario.Where(u => u.UserAccount == usuario.UserAccount).FirstOrDefault();
                    var Rol      = new UserRole
                    {
                        UserId = userdata.Id,
                        Rol    = rol
                    };

                    _db.Add(Rol);
                    await _db.SaveChangesAsync();

                    var Usersesion = new UserSesion
                    {
                        IsLogin   = "******",
                        UserId    = userdata.Id,
                        MacAdress = Funciones.GetMacAdres().ToString()
                    };
                    _db.Add(Usersesion);
                    await _db.SaveChangesAsync();

                    Funciones.Alerta(
                        "Usuario registrado exitosamente.",
                        "success",
                        "check"
                        );

                    if (UserLogin.Islogin == false)
                    {
                        return(RedirectToAction("LoginUser",
                                                new LoginCredentials {
                            UserAccount = usuario.UserAccount
                        }));
                    }
                    else
                    {
                        return(RedirectToAction(nameof(AdmUsuarios)));
                    }
                }
                else
                {
                }
            }

            else
            {
                return(View(usuario));
            }

            return(View());
        }