static public Tuple <bool, String, String> Wysylanie(String login) { String adres_mail = String.Empty; String id_uzytk = String.Empty; String komunikat = String.Empty; Laczenie.Initialize(); Laczenie.Open(); string query0 = "select id_uzytk from [dbo].[UZYTK] where login='******'"; using (SqlCommand command0 = Laczenie.SqlCommand(query0)) { SqlDataReader reader0 = command0.ExecuteReader(); if (reader0.Read()) { id_uzytk = reader0.GetInt32(0).ToString(); } else { komunikat = "Wpisz poprawny login"; return(Tuple.Create(false, komunikat, "")); } reader0.Close(); } Laczenie.Close(); if (String.IsNullOrEmpty(id_uzytk)) { //zapisanie do logów Logi.LogFile("Problem z loginem przy odzyskiwaniu hasła: " + login); return(Tuple.Create(false, komunikat, "")); } Laczenie.Open(); string query1 = "select e_mail from [dbo].[UZYTK] where id_uzytk=" + id_uzytk + ""; using (SqlCommand command1 = Laczenie.SqlCommand(query1)) { SqlDataReader reader1 = command1.ExecuteReader(); if (reader1.Read()) { adres_mail = reader1.GetString(0).ToString(); } reader1.Close(); } Laczenie.Close(); if (String.IsNullOrEmpty(adres_mail)) { komunikat = "Wystąpił problem z e-mailem - skontaktuj się z Administratorem"; //zapisanie do logów Logi.LogFile("Problem z e-mailem przy odzyskiwaniu hasła: " + login); return(Tuple.Create(false, komunikat, "")); } return(Tuple.Create(true, "", adres_mail)); }
protected void Page_Load(object sender, EventArgs e) { //brak dostępu niezalogowanemu użytkownikowi if (!String.IsNullOrEmpty((string)Session["id_uzytk"])) { string id_uzytk = (string)Session["id_uzytk"]; } else { Session["brak_dostepu"] = "true"; Response.Redirect("Logowanie.aspx", true); } //wykona się tylko za pierwszym razem if (!IsPostBack) { String imie = String.Empty; String nazwisko = String.Empty; String telefon = String.Empty; String email = String.Empty; String id_jednostka = String.Empty; String nazwa_jednostki = String.Empty; string id_uzytk = (string)Session["id_uzytk"]; string query = "select [UZYTK].imie, [UZYTK].nazwisko, [UZYTK].tel_kom, [UZYTK].e_mail, [UZYTK].id_jednostka, JEDNOSTKA.nazwa_nadrz, JEDNOSTKA.nazwa_podrz from [dbo].[UZYTK] JOIN [dbo].JEDNOSTKA ON JEDNOSTKA.id_jednostki = [UZYTK].id_jednostka where id_uzytk=" + id_uzytk; //inicjalizacja połączenia Laczenie.Initialize(); Laczenie.Open(); using (SqlCommand command1 = Laczenie.SqlCommand(query)) { SqlDataReader reader = command1.ExecuteReader(); while (reader.Read()) { imie = reader.GetValue(0).ToString(); nazwisko = reader.GetValue(1).ToString(); telefon = reader.GetValue(2).ToString(); email = reader.GetValue(3).ToString(); id_jednostka = reader.GetValue(4).ToString(); nazwa_jednostki = reader.GetValue(5).ToString() + ", " + reader.GetValue(6).ToString(); } reader.Close(); } Laczenie.Close(); TextBoxImie.Text = imie; TextBoxNazwisko.Text = nazwisko; TextBoxTel.Text = telefon; TextBoxMail.Text = email; DropDownListJednostka.DataBind(); DropDownListJednostka.Items.FindByValue(id_jednostka).Selected = true; } }
protected void Zmien_Click(object sender, EventArgs e) { string id_uzytk = (string)Session["id_uzytk"]; String imie; String nazwisko; String tel_kom; String e_mail; int id_jednostki; int wykonano = 0; id_jednostki = Convert.ToInt32(DropDownListJednostka.SelectedValue); imie = TextBoxImie.Text; nazwisko = TextBoxNazwisko.Text; tel_kom = TextBoxTel.Text; e_mail = TextBoxMail.Text; //inicjalizacja połączenia Laczenie.Initialize(); Laczenie.Open(); string query = "UPDATE [dbo].[UZYTK] SET [imie] = '" + imie + "', [nazwisko] = '" + nazwisko + "', [tel_kom] = '" + tel_kom + "', [e_mail] = '" + e_mail + "', [id_jednostka] = " + id_jednostki + " where id_uzytk = " + id_uzytk + ""; Laczenie.Open(); using (SqlCommand command2 = Laczenie.SqlCommand(query)) { wykonano = command2.ExecuteNonQuery(); } Laczenie.Close(); if (wykonano > 0) { Session["blad_insert"] = "0"; //zapisanie do logów Logi.LogFile(Session["login"] + " - SQL: " + query); Response.Redirect("Konto.aspx", true); } else { Session["blad_insert"] = "1"; //zapisanie do logów Logi.LogFile(Session["login"] + " : błąd -> " + query); Response.Redirect("Konto.aspx", true); } Session["blad_insert"] = String.Empty; }
protected void Zmien_Click(object sender, EventArgs e) { string id_uzytk = (string)Session["id_uzytk"]; String nowe_haslo; nowe_haslo = TextBoxHaslo.Text; //inicjalizacja połączenia Laczenie.Initialize(); Laczenie.Open(); string query = "UPDATE [dbo].[UZYTK] SET [haslo] = '" + nowe_haslo + "' WHERE [id_uzytk] = " + id_uzytk; SqlCommand command = Laczenie.SqlCommand(query); command.ExecuteNonQuery(); //zapisanie do logów Logi.LogFile("Poprawnie zmieniono hasło: " + Session["login"]); Response.Redirect("Konto.aspx", true); }
protected void Rejestracja_Click(object sender, EventArgs e) { bool captcha_ok = false; bool valid_captcha = SprawdzCaptcha(); if (valid_captcha == false) { validKod.IsValid = false; validKod.ErrorMessage = "Niepoprawny kod - spróbuj ponownie"; } else { captcha_ok = true; } if (captcha_ok == true) { UsunNieaktUserow.SprawdzNieakt(); //klasa, która usuwa nieaktywnych userów String imie; String nazwisko; String login; String haslo; int id_uprawnienia; String tel_kom; String e_mail; int id_jednostki; id_jednostki = Convert.ToInt32(DropDownListJednostka.SelectedValue.ToString()); imie = TextBoxImie.Text; nazwisko = TextBoxNazwisko.Text; login = TextBoxLogin.Text; haslo = TextBoxHaslo.Text; id_uprawnienia = Convert.ToInt32(DropDownListUprawnienia.SelectedValue.ToString()); //.SelectedValue.ToString() to indeks z tabeli tel_kom = TextBoxTel.Text; e_mail = TextBoxMail.Text; //sprawdzenie, czy istnieje już taki login w bazie (ma być unique) Laczenie.Initialize(); Laczenie.Open(); if (DaneUzytk.ZwrocIdUser(login) > 0) { validacjaLoginu.IsValid = false; //wyświetlenie komunikatu o powtórzonym loginie //zapisanie do logów Logi.LogFile("Nie zarejestrowano: " + login + "- występuje taki login w bazie"); return; } validTmp.Text = "ok"; string body = ""; int wynikInsert = 0; //dodanie nieaktywnego użytkownika string query = "INSERT INTO [dbo].[UZYTK] ([imie],[nazwisko],[login],[haslo],[id_uprawnienia],[tel_kom],[e_mail],[id_jednostka], aktywny) VALUES ('" + imie + "', '" + nazwisko + "', '" + login + "', '" + haslo + "', " + id_uprawnienia + ", '" + tel_kom + "', '" + e_mail + "', " + id_jednostki + ", '" + "False" + "')"; Laczenie.Open(); using (SqlCommand command = Laczenie.SqlCommand(query)) { wynikInsert = command.ExecuteNonQuery(); } Laczenie.Close(); if (wynikInsert > 0) { //zapisanie do logów Logi.LogFile("Poprawnie zarejestrowano: " + login); } else { Logi.LogFile("Nieudana rejestracja (brak insertu): " + login); Response.Redirect("Logowanie.aspx", true); } //tworzenie kodu aktywacyjnego var wynik = WysylanieMaila.KodAktywacyjny(DaneUzytk.ZwrocIdUser(login)); if (String.IsNullOrEmpty(wynik)) { //zapisanie do logów Logi.LogFile("Nieudana rejestracja (brak kodu aktywacyjnego): " + login); Response.Redirect("Logowanie.aspx", true); } else { String link_akt = Request.Url.AbsoluteUri.Replace("Rejestracja.aspx", "Logowanie.aspx?KodAktyw=" + wynik); body = "<br /><br /> Witaj " + login + ","; body += "<br /><br />Kliknij w poniższy link w celu aktywacji"; body += "<br /><a href = '" + link_akt + "'>Kliknij, by aktywować konto.</a>"; } //wysyłanie maila bool wyslane = WysylanieMaila.Mail("*****@*****.**", e_mail, "Aktywacja konta", body); if (wyslane == true) { //zapisanie do logów Logi.LogFile("Rejestracja: " + login + " - wysłano maila z linkiem aktywacyjnym"); Session["rejestracja"] = "true"; Response.Redirect("Logowanie.aspx", true); } else { //zapisanie do logów Logi.LogFile("Nieudana rejestracja (mail nie został wysłany): " + login); Session["rejestracja"] = "false"; Response.Redirect("Logowanie.aspx", true); } } }
protected void DodajKlik(object sender, EventArgs e) { String nazwa_nadrz; String nazwa_podrz; String ulica; String kod_poczt; String miasto; String mail; String www; String tel; String fax; String nip; String id_jednostki; nazwa_nadrz = TextBoxNazwaJednNadrz.Text; nazwa_podrz = TextBoxNazwaJednPodrz.Text; ulica = TextBoxUlica.Text; kod_poczt = TextBoxKodPocztowy.Text; miasto = TextBoxMiasto.Text; mail = TextBoxMail.Text; www = TextBoxWww.Text; tel = TextBoxTel.Text; fax = TextBoxFax.Text; nip = TextBoxNip.Text; //sprawdzenie, czy istnieje taka jednostka string query = "select id_jednostki from [dbo].[JEDNOSTKA] where nazwa_nadrz='" + nazwa_nadrz + "' and nazwa_podrz='" + nazwa_podrz + "'"; Laczenie.Initialize(); Laczenie.Open(); using (SqlCommand command = Laczenie.SqlCommand(query)) { SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { id_jednostki = reader.GetInt32(0).ToString(); Session["istnieje_jednostka"] = "1"; Response.Redirect("Rejestracja.aspx", true); } else { Session["istnieje_jednostka"] = "0"; } reader.Close(); Session["blad_insert"] = String.Empty; } Laczenie.Close(); string query1 = "insert into JEDNOSTKA (nazwa_nadrz, nazwa_podrz, ulica, kod_pocztowy, miasto, e_mail, www, tel, fax, nip) values ('" + nazwa_nadrz + "', '" + nazwa_podrz + "', '" + ulica + "', '" + kod_poczt + "', '" + miasto + "', '" + mail + "', '" + www + "', '" + tel + "', '" + fax + "', '" + nip + "')"; //zapisanie do logów Logi.LogFile(Session["login"] + " - SQL: " + query1); //inicjalizacja połączenia Laczenie.Initialize(); Laczenie.Open(); SqlCommand command1 = Laczenie.SqlCommand(query1); command1.ExecuteNonQuery(); Laczenie.Close(); Session["dodaj_jednostke"] = nazwa_nadrz + ", " + nazwa_podrz; Response.Redirect("Rejestracja.aspx", true); }
static public void SprawdzNieakt() { Laczenie.Initialize(); Laczenie.Open(); DateTime data_przet = DateTime.Today.AddDays(-3.00).Date; string query = "select id_uzytk from [dbo].[UZYTK_AKTYW] where data_kodu<='" + data_przet + "'"; List <int> nieakt_kod_userzy = new List <int>(); using (SqlCommand command = Laczenie.SqlCommand(query)) { SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { int id_uzytk = reader.GetInt32(0); nieakt_kod_userzy.Add(id_uzytk); //zapisanie do logów Logi.LogFile("Nieaktywne konto: " + id_uzytk); } reader.Close(); } if (nieakt_kod_userzy.Count > 0) { foreach (int id_uzytk in nieakt_kod_userzy) { int wynik_del0 = 0; Laczenie.Open(); string query0 = "delete from [dbo].[UZYTK_AKTYW] where id_uzytk=" + id_uzytk; //sprawdzanie, czy wykonał się delete using (SqlCommand command0 = Laczenie.SqlCommand(query0)) { wynik_del0 = command0.ExecuteNonQuery(); //ExecuteNonQuery zwraca liczbę zmodyfikowanych wierszy } Laczenie.Close(); if (wynik_del0 < 0) { return; } int wynik_del1 = 0; Laczenie.Open(); string query1 = "delete from [dbo].[UZYTK] where id_uzytk=" + id_uzytk + ""; //sprawdzanie, czy wykonał się delete using (SqlCommand command1 = Laczenie.SqlCommand(query1)) { wynik_del1 = command1.ExecuteNonQuery(); //ExecuteNonQuery zwraca liczbę zmodyfikowanych wierszy } Laczenie.Close(); if (wynik_del1 > 0) { //zapisanie do logów Logi.LogFile("Poprawnie usunięto nieaktywnego użytkownika: " + id_uzytk); } else { //zapisanie do logów Logi.LogFile("Nie udało się usunąć nieaktywnego użytkownika: " + id_uzytk); } } } }
protected void ZapomnHasla_Click(object sender, EventArgs e) { String login; login = LoginTextBox.Text.ToString(); String id_uzytk = string.Empty; String aktywny = string.Empty; string query = "select id_uzytk, aktywny from [dbo].[UZYTK] where login='******'"; Laczenie.Initialize(); Laczenie.Open(); using (SqlCommand command = Laczenie.SqlCommand(query)) { SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { id_uzytk = reader.GetInt32(0).ToString(); aktywny = reader.GetBoolean(1).ToString(); } reader.Close(); } Laczenie.Close(); if (aktywny == "False") { LabelBrakDostepu.Text = "Brak dostępu: nieaktywny login (sprawdź maila z linkiem aktywacyjnym)"; LabelBrakDostepu.Visible = true; //zapisanie do logów Logi.LogFile("Nieaktywny login: "******"UPDATE [dbo].[UZYTK] SET haslo = '" + nowe_haslo + "' where login='******'"; Laczenie.Open(); using (SqlCommand command1 = Laczenie.SqlCommand(query1)) { wynik_insert = command1.ExecuteNonQuery(); //zapisanie do logów Logi.LogFile("Zmiana hasła - SQL: " + query1); } Laczenie.Close(); if (wynik_insert > 0) { bool wyslane = WysylanieMaila.Mail("*****@*****.**", wynik.Item3, "Reset hasła", "Nowe hasło to " + nowe_haslo); if (wyslane) { LabelWyslanoMaila.Visible = true; //zapisanie do logów Logi.LogFile("Zmiana hasła: " + login + " - wysłano maila z nowym hasłem"); } else { //zapisanie do logów Logi.LogFile("Nieudana zmiana hasła (mail nie został wysłany): " + login); LabelWyslanoMaila.Text = "Wystąpił błąd - spróbuj ponownie"; LabelWyslanoMaila.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); LabelWyslanoMaila.Visible = true; } } else { //zapisanie do logów Logi.LogFile("Nieudana zmiana hasła (update nie został wykonany): " + login); LabelBrakDostepu.Text = "Wystąpił błąd - spróbuj ponownie"; LabelBrakDostepu.Visible = true; } } } }
protected void ZalogujKlik(object sender, EventArgs e) { LabelBrakDostepu.Visible = false; LabelWyslanoMaila.Visible = false; if (!String.IsNullOrEmpty(HttpContext.Current.Request.Params["KodAktyw"])) { LabelWylogowane.Visible = false; LabelRejestracja.Visible = false; } String login; String haslo; login = LoginTextBox.Text.ToString(); haslo = HasloTextBox.Text.ToString(); String id_uzytk = string.Empty; String login_uzytk = string.Empty; String haslo_uzytk = string.Empty; String aktywny = string.Empty; string query = "select id_uzytk, login, haslo, aktywny from [dbo].[UZYTK] where login='******'"; Laczenie.Initialize(); Laczenie.Open(); using (SqlCommand command = Laczenie.SqlCommand(query)) { SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { id_uzytk = reader.GetInt32(0).ToString(); login_uzytk = reader.GetString(1).ToString(); haslo_uzytk = reader.GetString(2).ToString(); aktywny = reader.GetBoolean(3).ToString(); } reader.Close(); } Laczenie.Close(); if (aktywny == "False") { LabelBrakDostepu.Text = "Brak dostępu: nieaktywny login (sprawdź maila z linkiem aktywacyjnym)"; LabelBrakDostepu.Visible = true; //zapisanie do logów Logi.LogFile("Nieaktywny login: "******"id_uzytk"] = id_uzytk; Session["login"] = login; //zapisanie do logów Logi.LogFile("Poprawnie zalogowano: " + login); Response.Redirect("ListaProgramow.aspx", true); } else { LabelNiepoprawneLogowanie.Visible = true; } } }
protected void Page_Load(object sender, EventArgs e) { #region KodAktyw if (!String.IsNullOrEmpty(HttpContext.Current.Request.Params["KodAktyw"])) { int roznica = 0; string kod_aktyw = HttpContext.Current.Request.Params["KodAktyw"]; Laczenie.Initialize(); Laczenie.Open(); string query0 = "select data_kodu from [dbo].[UZYTK_AKTYW] where kod_aktyw='" + kod_aktyw + "'"; DateTime data_dzis = DateTime.Today; DateTime data_kodu = DateTime.MinValue; Laczenie.Open(); using (SqlCommand command0 = Laczenie.SqlCommand(query0)) { SqlDataReader reader0 = command0.ExecuteReader(); if (reader0.Read()) { data_kodu = Convert.ToDateTime(reader0[0]); } else //nie ma już takiego kodu (usunięty) { LabelRejestracja.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); LabelRejestracja.Text = "Link został wykorzystany"; LabelRejestracja.Visible = true; return; } reader0.Close(); } Laczenie.Close(); roznica = (data_dzis.Date - data_kodu.Date).Days; if (roznica > 3) { LabelRejestracja.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); LabelRejestracja.Text = "Link nie jest aktualny - spróbuj zarejestrować się ponownie"; LabelRejestracja.Visible = true; return; } else { LabelRejestracja.Visible = false; } string query = "select id_uzytk from [dbo].[UZYTK_AKTYW] where kod_aktyw='" + kod_aktyw + "'"; int id_uzytk = -1; Laczenie.Open(); using (SqlCommand command = Laczenie.SqlCommand(query)) { SqlDataReader reader = command.ExecuteReader(); if (reader.Read()) { id_uzytk = reader.GetInt32(0); //zapisanie do logów Logi.LogFile("Prawidłowy kod aktywacyjny: " + kod_aktyw); } else { //zapisanie do logów Logi.LogFile("Nieprawidłowy kod aktywacyjny: " + kod_aktyw); LabelWylogowane.Text = "Kod aktywacyjny jest nieprawidłowy"; LabelWylogowane.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); LabelWylogowane.Visible = true; } reader.Close(); } Laczenie.Close(); int wynikInsert1 = 0; int wynikInsert2 = 0; if (id_uzytk > 0) { string query1 = "UPDATE [UZYTK] SET [aktywny] = 'True' where id_uzytk = " + id_uzytk; Laczenie.Open(); using (SqlCommand command1 = Laczenie.SqlCommand(query1)) { wynikInsert1 = command1.ExecuteNonQuery(); //zapisanie do logów Logi.LogFile("Aktywacja użytkownika - SQL: " + query1); } Laczenie.Close(); } if (wynikInsert1 > 0) { string query2 = "delete from [dbo].[UZYTK_AKTYW] where id_uzytk = " + id_uzytk; Laczenie.Open(); using (SqlCommand command2 = Laczenie.SqlCommand(query2)) { wynikInsert2 = command2.ExecuteNonQuery(); //zapisanie do logów Logi.LogFile("Aktywacja użytkownika - SQL: " + query2); } Laczenie.Close(); } if (wynikInsert2 > 0) { //zapisanie do logów Logi.LogFile("Prawidłowo aktywowano użytkownika: " + id_uzytk); LabelWylogowane.Text = "Konto zostało aktywowane"; LabelWylogowane.Visible = true; } else { //zapisanie do logów Logi.LogFile("Nie aktywowano użytkownika: " + id_uzytk); LabelWylogowane.Text = "Konto nie zostało aktywowane"; LabelWylogowane.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); LabelWylogowane.Visible = true; } } #endregion KodAktyw else { LabelWylogowane.Visible = false; if ((!String.IsNullOrEmpty((string)Session["id_uzytk"])) & (!String.IsNullOrEmpty((string)Session["login"]))) { //usuwanie sesji - wylogowanie Session["id_uzytk"] = string.Empty; //zapisanie do logów Logi.LogFile("Poprawnie wylogowano: " + Session["login"]); //c.d. usuwania sesji Session["login"] = string.Empty; LabelWylogowane.Text = "Poprawnie wylogowano"; LabelWylogowane.Visible = true; } else { if (!String.IsNullOrEmpty((string)Session["rejestracja"])) { if (!String.IsNullOrEmpty((string)Session["rejestracja"]) == true) { LabelRejestracja.Visible = true; LabelRejestracja.Text = "Poprawnie zarejestrowano"; Session["rejestracja"] = String.Empty; //tylko raz się wyświetli ten komunikat LabelWyslanoMaila.Visible = true; } else if (!String.IsNullOrEmpty((string)Session["rejestracja"]) == false) { LabelWyslanoMaila.Text = "Wystąpił błąd - spróbuj ponownie"; LabelWyslanoMaila.ForeColor = System.Drawing.ColorTranslator.FromHtml("Red"); Session["rejestracja"] = String.Empty; //tylko raz się wyświetli ten komunikat LabelWyslanoMaila.Visible = true; } } else { if (!String.IsNullOrEmpty((string)Session["brak_dostepu"])) { Session["brak_dostepu"] = String.Empty; //tylko raz się wyświetli ten komunikat LabelBrakDostepu.Visible = true; } } } } LabelNiepoprawneLogowanie.Visible = false; }