Exemplo n.º 1
0
        /// <summary>
        /// Metoda koja prijavljuje korisnika u bazu podataka te vraća odgovarajuće podatke korisnika.
        /// Ukoliko korisnik prilikom registracije nije odabrao 2FA autentifikaciju vraćaju se njegovi podaci iz baze podataka.
        /// Ukoliko je korisnik prilikom registracije odabrao 2FA autentifikaciju vraća se Username,Password i obavijest o 2FA autentifikaciji u obliku korisničkoga JSON-a
        /// </summary>
        /// <param name="connection"></param>
        /// <returns></returns>
        public string PrijavaKorisnika(SqlConnection connection)
        {
            string rezultat = "";

            var command = new SqlCommand();

            command.Connection  = connection;
            command.CommandType = CommandType.Text;
            command.CommandText = "SELECT Korisnik.*,TipoviKorisnika.Naziv FROM Korisnik,TipoviKorisnika WHERE Username=@Username AND Password=@Password AND TipKorisnika=Id";
            command.Parameters.AddWithValue("@Password", Password);
            command.Parameters.AddWithValue("@Username", Username);
            using (SqlDataReader reader = command.ExecuteReader())
            {
                if (!reader.HasRows)
                {
                    Username = null;
                    Password = null;
                }
                else if (reader.Read())
                {
                    if (Convert.ToInt32(reader["Status"]) == 0)
                    {
                        Username = null;
                        Password = null;
                    }
                    else
                    {
                        Username      = reader["Username"].ToString();
                        Ime           = reader["Ime"].ToString();
                        Prezime       = reader["Prezime"].ToString();
                        Email         = reader["Email"].ToString();
                        BrojTelefona  = reader["BrojTelefona"].ToString();
                        DatumRodjenja = reader["DatumRodjenja"].ToString();
                        Kljuc2FA      = reader["Kljuc2FA"].ToString();
                        Status        = Convert.ToInt32(reader["Status"]);
                        TipKorisnika  = reader["Naziv"].ToString();
                    }
                }
            }

            if (Kljuc2FA != "" && Kljuc2FA != "null")
            {
                Korisnik        novi        = new Korisnik();
                Verficiranje2FA verificiraj = new Verficiranje2FA();
                Kljuc2FA = verificiraj.GenerirajKljuc2FA();
                UnesiUBazuKljuc2FA(connection);
                verificiraj.PosaljiPorukuNaMobilni(BrojTelefona);
                novi.Username = Username;
                novi.Password = Password;
                novi.Kljuc2FA = "DA";
                rezultat      = JsonPretvarac.Serijalizacija(novi);
                return(rezultat);
            }

            rezultat = JsonPretvarac.Serijalizacija(this);
            return(rezultat);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Pomoćna funkcija za funkciju RegistrirajKorisnika() koja zapisuje sve potrebne ključeve u bazu podataka(Javni,Privatni,2FA)
        /// </summary>
        /// <param name="connection"></param>
        private void ZapisiKljuceveUBazu(SqlConnection connection)
        {
            var        command    = new SqlCommand();
            Enkripcija enkripcija = new RsaEnkripcija();

            enkripcija.AssignRsaKeys();
            JavniKljuc = enkripcija.DohvatiJavniKljuc();

            command             = new SqlCommand();
            command.Connection  = connection;
            command.CommandType = CommandType.Text;
            command.CommandText = "UPDATE Korisnik SET JavniKljuc = @JavniKljuc WHERE Username=@Username";
            command.Parameters.AddWithValue("@JavniKljuc", JavniKljuc);
            command.Parameters.AddWithValue("@Username", Username);
            command.ExecuteNonQuery();

            command             = new SqlCommand();
            command.Connection  = connection;
            command.CommandType = CommandType.Text;
            command.CommandText = "INSERT INTO PrivatniKljucevi(Username,PrivatniKljuc) VALUES (@Username,@PrivatniKljuc)";
            command.Parameters.AddWithValue("@PrivatniKljuc", enkripcija.DohvatiPrivatniKljuc());
            command.Parameters.AddWithValue("@Username", Username);
            command.ExecuteNonQuery();

            if (Kljuc2FA == "DA")
            {
                Verficiranje2FA verificiranje = new Verficiranje2FA();
                Kljuc2FA            = verificiranje.GenerirajKljuc2FA();
                command             = new SqlCommand();
                command.Connection  = connection;
                command.CommandType = CommandType.Text;
                command.CommandText = "UPDATE Korisnik SET Kljuc2FA = @Kljuc2FA WHERE Username=@Username";
                command.Parameters.AddWithValue("@Kljuc2FA", Kljuc2FA);
                command.Parameters.AddWithValue("@Username", Username);
                command.ExecuteNonQuery();
            }

            DropboxManager dropbox = new DropboxManager();

            dropbox.CreateANewFolder(Username);
        }