示例#1
0
        // Da de alta a un usuario a la Base de Datos.
        public void SignUp(UserPostDTO newUser)
        {
            User dbUser = newUser.GetDataBaseObject();

            dbUser.Userid       = Guid.NewGuid();
            dbUser.Salt         = CryptoSC.GenerateSalt();;
            dbUser.Hashpassword = CryptoSC.GetHashedPassword(newUser.Password, dbUser.Salt);

            dbContext.Users.Add(dbUser);
            dbContext.SaveChanges();
        }
示例#2
0
        // Recibe un usuario y una contraseña. Si la contraseña hasheada coincide con la contraseña almacenada
        // en la Base de Datos devuelve un Token JWT.
        public string Login(string username, string password)
        {
            // Busca al usuario en la Base de Datos.
            User dbUser = GetAllUsers().FirstOrDefault(user => user.Username == username);

            if (dbUser == null)
            {
                throw new KeyNotFoundException();
            }

            // Compara las contraseñas.
            bool passwordsMatch = CryptoSC.ComparePasswords(dbUser.Hashpassword, password, dbUser.Salt);

            // Si las contraseñas coinciden genera un Token JWT y lo devuelve.
            return(passwordsMatch ? CryptoSC.GenerateToken(dbUser) : null);
        }