public static bool zarejestruj_uzytkownika(string login, string imie, string opis) { klucze nowy_klucz = new klucze(); nowy_klucz.generuj_klucze(); string query = "INSERT INTO uzytkownicy (login,klucz_publiczny,skrot_klucz_prywatny,imie,opis) VALUES(@login, @klucz_publiczny, @skrot_klucz_prywatny, @imie, @opis);insert into lista_kontaktow values (@login, '<lista_kontaktow></lista_kontaktow>'); insert into lista_zdarzen (login) values (@login)"; SqlCommand executeQuery = new SqlCommand(query, cnn); executeQuery.Parameters.AddWithValue("login", login); executeQuery.Parameters.AddWithValue("imie", imie); executeQuery.Parameters.AddWithValue("opis", opis); executeQuery.Parameters.AddWithValue("klucz_publiczny", nowy_klucz.klucz_publiczny); executeQuery.Parameters.AddWithValue("skrot_klucz_prywatny", nowy_klucz.klucz_prywatny.hashuj()); try { executeQuery.ExecuteNonQuery(); klasa_rozszerzen.balloon_tip("", "Zapisz plik przechowujący klucz w bezpiecznym miejscu. Będziesz używać go do logowania."); if (nowy_klucz.zapisz_do_pliku(login) == false) { usun_konto(login, nowy_klucz); klasa_rozszerzen.balloon_tip("", "Konto nie zostało utworzone (nie zapisano klucza)."); return(false); } else { klasa_rozszerzen.balloon_tip("", "Konto zostało utworzone poprawnie. Możesz teraz się zalogować."); return(true); } } catch (Exception ex) { klasa_rozszerzen.balloon_tip("", "Wystąpił nieoczekiwany błąd! Użytkownik nie został utworzony, spróbuj ponownie." + ex.Message); return(false); } }
public static bool sprawdz_dane(string login, klucze key) { string hashKlucza = key.klucz_prywatny.hashuj(); string queryResult = null; string query = "select skrot_klucz_prywatny from uzytkownicy where login = @login"; SqlCommand executeQuery = new SqlCommand(query, cnn); executeQuery.Parameters.AddWithValue("login", login); try { queryResult = (string)executeQuery.ExecuteScalar(); if (!hashKlucza.Equals(queryResult)) { return(false); } else { return(true); } } catch (Exception ex) { klasa_rozszerzen.balloon_tip("", "Wystąpił nieoczekiwany błąd! Spróbuj ponownie.\n" + ex.Message); return(false); } }
public Logowanie() { InitializeComponent(); label.ToolTip = "np. Guziec94"; label1.ToolTip = "Klucz prywatny przypisany do konta"; _login = null; _klucz = new klucze(); baza_danych.polacz_z_baza(); }
public PanelGlowny() { InitializeComponent(); // POBIERAMY DANE KONTA ZE STRONY LOGOWANIA _login = Logowanie._login; _klucz = Logowanie._klucz; // ZMIENIAMY TYTUL NA BELCE GORNEJ APLIKACJI UWZGLEDNIAJAC LOGIN ZALOGOWANEGO UZYTKOWNIKA Application.Current.MainWindow.Title = "GuziecSIM - " + _login; // DO LISTY KONTAKTOW I WIADOMOSCI DODAJEMY STYLE DZIEKI KTORYM ICH ZAWARTOSC NIE BEDZIE PODSWIETLANA PO NAJECHANIU okno.Style = (Style)Application.Current.Resources["listboxBezPodswietlen"]; kontakty.Style = (Style)Application.Current.Resources["listboxBezPodswietlen"]; // DO PRZYCISKOW DODANYCH STATYCZNIE DODAJEMY STYLE button1_Copy2.Style = (Style)Application.Current.Resources["ladnyPrzyciskStyle"]; button1.Style = (Style)Application.Current.Resources["ladnyPrzyciskStyle"]; // UMOZLIWIAMY BY POLE TEKSTOWE NA NOWA WIADOMOSC MOGLO PRZECHOWYWAC TEKST WIELOLINIOWY textBox.TextWrapping = TextWrapping.Wrap; textBox.AcceptsReturn = true; // DEFINIUJEMY WSZYSTKIE MOZLIWE NA TE CHWILE PODPOWIEDZI (DLA STATYCZNIE UTWORZONYCH KONTROLEK) button1_Copy.ToolTip = "Zminimalizuj konwersację"; button1_Copy1.ToolTip = "Zamknij konwersację"; btnWyl.ToolTip = "Wyloguj się"; btnUsuw.ToolTip = "Usuń konto"; btnDod.ToolTip = "Dodaj kontakt"; baza_danych.powiadomOStatusieDodawania(_login); baza_danych.czyKtosChceDodacDoListy(_login); // JEZELI UZYTKOWNIK POSIADA JAKICHS ZNAJOMYCH (POBRANA LISTA NIE JEST PUSTA) WYSWIETLAMY ICH pokazListeKontaktow(); baza_danych.rozglos_logowanie(); // ROZPOCZYNAMY RAPORTOWANIE BAZY DANYCH O WPROWADZONYCH W NIEJ ZMIANACH baza_danych.broker(); wczytaj_wiadomosci(); if (archiwum.Count > 0) { System.Media.SystemSounds.Beep.Play(); } okno.Dispatcher.Invoke(new Action(() => okno.Items.Clear()), System.Windows.Threading.DispatcherPriority.Normal); }
/* [WYBRANO OPCJĘ USUWANIA KONTA] */ private void btnUsuw_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("Czy na pewno chcesz usunąć swoje konto? Ta operacja jest nieodwracalna. Operację należy potwierdzić kluczem.", "Usuwanie konta - " + _login, MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes) { // W CELU USUNIECIA KONTA MUSIMY POTWIERDZIC CHEC TEJ OPERACJI PODAJAC KLUCZ PRYWATNY DO KONTA klucze temp = new klucze(); temp.zaladuj_z_pliku(); if (temp.klucz_prywatny != null) { // SPRAWDZAMY CZY PODANY KLUCZ PRYWATNY JEST POPRAWNY if (baza_danych.sprawdz_dane(_login, temp)) { // USUWAMY KONTO Z BAZY DANYCH baza_danych.usun_konto(_login, _klucz); // USUWAMY KONTAKT Z LIST KONTAKTÓW ZAZNAJOMIONYCH UŻYTKOWNIKÓW foreach (var kontakt in lista) { List <Uzytkownik> lista_usuwanego = new List <Uzytkownik>(); lista_usuwanego = baza_danych.pobierz_liste_kontaktow(kontakt.login); if (lista_usuwanego != null) { lista_usuwanego.Remove(lista_usuwanego.Find(x => x.login == _login)); baza_danych.lista_kontaktow_do_xml(lista_usuwanego, kontakt.login, true); } } // ZMIENIAMY SPOWROTEM TYTUL BELKI GORNEJ APLIKACJI NIE UWZGLEDNIAJAC TYM RAZEM ZADNEGO LOGINU Application.Current.MainWindow.Title = "GuziecSIM"; // PRZEKIEROWUJEMY UZYTKOWNIKA SPOWROTEM NA STORNE LOGOWANIA baza_danych.broker_stop(); Logowanie logowanie = new Logowanie(); NavigationService nav = NavigationService.GetNavigationService(this); nav.Navigate(logowanie); } else { klasa_rozszerzen.balloon_tip("", "Podano niepoprawny klucz, konto nie zostało usunięte."); } } } }
public static List <Wiadomosc> sprawdzWiadomosci(string login, klucze klucz_odbierajacego) { List <Wiadomosc> wiadomosci = new List <Wiadomosc>(); string query = "select login_wysylajacego, tresc, czas_wyslania from wiadomosci where login_odbiorcy = @login"; SqlCommand executeQuery = new SqlCommand(query, cnn); executeQuery.Parameters.AddWithValue("login", login); using (executeQuery) { try { using (SqlDataReader readerQuery = executeQuery.ExecuteReader()) { while (readerQuery.Read()) { var czas = DateTime.Now; wiadomosci.Add(new Wiadomosc(readerQuery.GetString(0), login, readerQuery.GetDateTime(2), readerQuery.GetString(1).deszyfruj(klucz_odbierajacego.klucz_prywatny))); } readerQuery.Close(); if (wiadomosci.Count > 0) { return(wiadomosci); } else { return(null); } } } catch (Exception ex) { klasa_rozszerzen.balloon_tip("", "Wystąpił nieoczekiwany błąd!\n" + ex.Message); return(null); } } }
public static bool usun_konto(string login, klucze klucz) { if (sprawdz_dane(login, klucz)) { try { string query = "delete from uzytkownicy where login = @login;delete from lista_kontaktow where login=@login;delete from wiadomosci where login_odbiorcy = @login or login_wysylajacego = @login; delete from lista_zdarzen where login = @login;"; SqlCommand executeQuery = new SqlCommand(query, cnn); executeQuery.Parameters.AddWithValue("login", login); executeQuery.ExecuteNonQuery(); ustaw_status(login, false); return(true); } catch (Exception ex) { klasa_rozszerzen.balloon_tip("", "Wystąpił nieoczekiwany błąd! Spróbuj ponownie.\n" + ex.Message); return(false); } } else { return(false); } }