Jak wyciągnąć i porównać dane z MySQL?

0

Witam, w obecnej chwili piszę program bazodanowy i mam do was "zapytanie", a mianowicie jak porównać dane wpisane przez użytkownika do tych z tabeli MySQL? Korzystam z Home.pl, natomiast oni oferują tam tylko jednego "administratora" i nie można dodawać użytkowników z ograniczonymi prawami, dlatego postanowiłem stworzyć tabelę "użytkownicy" w której znajdują się loginy i hasła, a następnie porównać dane użytkownika z danymi znajdującymi się w tabeli tworząc tym samym sprawne logowanie się. Problem polega na tym, że nie wiem jak dane zapytanie miało by wyglądać...

Jeżeli wyślę następujące zapytanie:

 string komenda = "Select id from uzytkownik where login='" + z1.Imie + "' and haslo='" + z1.Haslo + "';";

to użytkownik, bez problemu przejdzie do następnej formy, a zależy mi na tym by po wpisaniu nieprawidłowego loginu bądź hasła wyskakiwał komunikat błędu.

1

Skoro selectujesz id to jezeli nie wyciagnie zadnego rekorduu z podanymi przez Ciebie loginem i haslem to id bedzie nullem.
Porownaj id do nulla, jezeli jest null to niepoprawny login lub haslo.

1

Tak jak pisze Amphhh, jeśli dane login+hasło nie będą się zgadzały to ID=null.

Ja jednak chciałem powiedzieć, że w kwestii bezpieczeństwa nie trzymaj "gołych" haseł w bazie. Zaszyfruj je przynajmniej MD5, zawsze to jakieś bezpieczeństwo większe. Później jak użytkownik podaje login i hasło do zalogowania, to hasło koduj w MD5 i dopiero porównuj z tym z bazy :)

0

Nie wiem jak to jest z dllami do mysql ale w postgresie jest cos takiego jak AddWithValue(sttring,object), co pozwala na jakby wstrzykiwanie danych w query.
To jest krotkie query ale jezeli bedziesz mial jakies wieksze to wrzucanie parametru plusem w stringa jest bardzo nieczytelne i bugopedne.
Sprawdz czy czegos takiego nie masz.

0

No to w MySQL jest dokładnie jak w postgresie, nawet taka sama nazwa metody.

0

Witam.
Pozwolę się podpiąć pod temat. Mam identyczną historię tzn. aplikacja desktopowa łącząca się bazą MySQL gdzie dostawca daje tylko jedno konto dostępowe do bazy z pełnymi uprawnieniami. Zestawienie połączenia jest możliwe tylko na tym loginie. Po zestawieniu połączenia program pobiera od usera login i hasło i odpytuje bazę. Działa. Tylko szkopuł jest taki, że jak ktoś podsłucha hasło admina które jest puszczane przy uwierzytelnianiu połączenia to inne hasła userów nie będą mu już potrzebne. Jak zabezpieczyć taki sposób łączenia z bazą? Czy połączenie SSL załatwi sprawę bezpiecznego nawiązania połączenia? Osobną kwestią jest również bezpieczne przechowywanie hasła admina po stronie aplikacji desktopowej. Myślę że autora wątku też to zainteresuje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1