Ejemplo n.º 1
0
        public Usuario InsertUsuario(Usuario oUsuario)
        {
            // Busco si existe la persona - Si no existe, creo Excepcion
            using (PersonaBusiness oPersonaBusiness = new PersonaBusiness())
            {
                if (oPersonaBusiness.GetPersonaById(new Persona()
                {
                    IdPersona = oUsuario.IdPersona
                }) == null)
                {
                    throw new Exception(string.Format("La persona con id {0} no existe", oUsuario.IdPersona));
                }
            }

            // Busco si ya existe el usuario - Si existe, creo Excepcion
            if (this.GetUsuarioById(oUsuario) != null)
            {
                throw new Exception(string.Format("El usuario {0} ya existe", oUsuario.User));
            }

            // Inserto el usuario
            using (UsuarioDataAccess tDataAccess = new UsuarioDataAccess())
            {
                // Encripto el pass + SALT
                oUsuario.Pass = EncriptarSHA256(oUsuario.Pass + oUsuario.User);

                tDataAccess.Insert(oUsuario);
            }

            return(this.GetUsuarioById(oUsuario));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Validar usuario con contraseña
        /// </summary>
        /// <param name="usuario"></param>
        /// <param name="supuestoPass"></param>
        /// <returns></returns>
        public UsuarioValidacion ValidarUsuario(string usuario, string supuestoPass, string plataforma)
        {
            UsuarioValidacion oUsuarioValidacion = new UsuarioValidacion();

            // Obtengo el usuario
            Usuario user = this.GetUsuarioById(new Usuario()
            {
                User = usuario
            });

            if (user == null)
            {
                oUsuarioValidacion.Result = "El usuario no existe";
                return(oUsuarioValidacion);
            }

            // Si no es admin, no puede loguearse a la aplicación web
            if (plataforma.Equals(WEB) && !user.EsAdmin)
            {
                oUsuarioValidacion.Result = "No posee los permisos suficientes para acceder";
                return(oUsuarioValidacion);
            }

            // Obtengo el supuesto HASH
            string supuestoHash = EncriptarSHA256(supuestoPass + usuario);

            // Comparo si los HASH son iguales => Si son iguales, el PASS es el correcto
            oUsuarioValidacion.Result = supuestoHash.Equals(user.Pass) ? "OK" : "Contraseña incorrecta";

            // Si no es válido, no necesito el id
            if (oUsuarioValidacion.Result.Equals("OK"))
            {
                oUsuarioValidacion.IdPersona = user.IdPersona;

                // Obtengo datos de la persona
                using (PersonaBusiness oPersonaBusiness = new PersonaBusiness())
                {
                    Persona oPersona = oPersonaBusiness.GetPersonaById(new Persona()
                    {
                        IdPersona = user.IdPersona
                    });
                    oUsuarioValidacion.Nombre     = oPersona.Nombre;
                    oUsuarioValidacion.Apellido   = oPersona.Apellido;
                    oUsuarioValidacion.IdCompania = oPersona.IdCompania;
                }
            }

            return(oUsuarioValidacion);
        }