• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlanie informacji o uzytkowniku po zalogowaniu C#

0 głosów
363 wizyt
pytanie zadane 7 maja 2020 w C# przez Avalansz Użytkownik (580 p.)

Dzien dobry. Tworze program logowania uzytkownikow z bazy danych. Aktualnie uzytkownik moze sie zalogowac kodem lub tez loginem i haslem. Logowanie dziala poprawnie lecz nie wiem jak wyswietlic w innym oknie(frmMain) informacje o zalogowanym uzytkowniku(imie, nazwisko, wynagrodzenie). Mam rowniez problem z zabezpieczeniem danych logowania. Podobno robi sie to poprzez @.

        public frmLogin()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\pwasi\Documents\LoginDB.mdf;Integrated Security=True;Connect Timeout=30");
            string query = "Select * from tbl_Login Where login = '" + textBox1.Text.Trim() + "' and haslo = '" + textBox2.Text.Trim() + "'";
            SqlDataAdapter sda = new SqlDataAdapter(query, con);
            DataTable dt = new DataTable();
            sda.Fill(dt);

            if (dt.Rows.Count == 1)
            {
                frmMain objFrmMain = new frmMain();
                this.Hide();
                objFrmMain.Show();
            }
            else
            {
                if (textBox1.TextLength == 0)
                {
                    MessageBox.Show("Nie podano loginu");

                }
                else if (textBox2.TextLength == 0)
                {
                    MessageBox.Show("Nie podano hasła");
                }
                else
                {
                    MessageBox.Show("Niepoprawny login lub hasło");
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\pwasi\Documents\LoginDB.mdf;Integrated Security=True;Connect Timeout=30");
            string code = "Select * from tbl_Login Where kod = '" + textBox3.Text.Trim() + "'";
            SqlDataAdapter sda = new SqlDataAdapter(code, con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            if (dt.Rows.Count == 1)
            {
                frmMain objFrmMain = new frmMain();
                this.Hide();
                objFrmMain.Show();
            }
            else
            {
                if (textBox3.TextLength == 0)
                {
                    MessageBox.Show("Nie podano kodu");
                }
                else
                {
                    MessageBox.Show("Niepoprawny kod");
                }
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            textBox3.Clear();
        }

 

komentarz 7 maja 2020 przez Adrian1999 Nałogowiec (34,570 p.)
Aktualnie odpisuje z telefonu, więc mówię ze wstępnej weryfikacji. Jeżeli chodzi o bezpieczeństwo, to w pierwszej kolejności linq to database w wyszukiwarce z hasłem "parsing". Co do wyświetlania logowania nie wypowiem się bo w wpf tak nie działam
komentarz 7 maja 2020 przez piotrsz109 Stary wyjadacz (13,730 p.)

@Avalansz, Aby odczytać dane użytkownika, polecam przeczytać tą stronę w dokumentacji:
https://docs.microsoft.com/pl-pl/dotnet/api/system.data.datatable.rows?view=netframework-4.7.2#System_Data_DataTable_Rows

Tego typu łączenie się z bazą danych jest rozwiązaniem niebezpiecznym. W tym przypadku powinieneś skorzystać z Entity Framework i tym samym DataBase First Approach.

Aby przekazać dane do innego okna, używając DataContext, choć lepszym byłoby wykorzystanie wzorca projektowego MVVM, który, moim zdaniem, pasuje całkiem dobrze do aplikacji WPF.
https://en.wikipedia.org/wiki/Model–view–viewmodel

W przypadku, jeśli to WinForms, to sugeruję przenieść się na WPF, jeśli jest taka możliwość.

Pozdrawiam

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 856 wizyt
pytanie zadane 24 marca 2020 w C# przez seba Dyskutant (8,900 p.)
0 głosów
0 odpowiedzi 183 wizyt
pytanie zadane 28 maja 2016 w C# przez Thamed Obywatel (1,080 p.)
0 głosów
0 odpowiedzi 168 wizyt
pytanie zadane 23 kwietnia 2019 w C# przez Michał_Warmuz Mądrala (5,830 p.)

93,773 zapytań

142,731 odpowiedzi

323,383 komentarzy

63,377 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...