//Controleert en slaat het nieuwe wachtwoord op in de database protected void btn_Opslaan_Click(object sender, EventArgs e) { DatabaseConnectie dbconnect = new DatabaseConnectie(); SqlConnection sqlConnection = new SqlConnection(dbconnect.dbConnectie); SqlCommand WwChecken = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection); sqlConnection.Open(); //Leest het laatst toegevoegde wachtwoord Wachtwoord = (string)WwChecken.ExecuteScalar(); sqlConnection.Close(); //Checkt of het oude wachtwoord goed is if (HashGenereren.checkHash(txtbx_OudWw.Text, Wachtwoord)) { //Checkt of de nieuw ingevoerde wachtwoorden overeenkomen if (txtbx_NieuwWw1.Text == txtbx_NieuwWw2.Text) { if (txtbx_NieuwWw1.Text.Length > 5) { //Hasht het nieuwe wachtwoord en Voegt het toe in de database string hash = HashGenereren.Genereer(txtbx_NieuwWw1.Text); sqlConnection.Open(); SqlCommand WwToevoegen = new SqlCommand("INSERT INTO Wachtwoord (Hash) VALUES ('" + hash + "');", sqlConnection); WwToevoegen.ExecuteNonQuery(); sqlConnection.Close(); lbl_Info.Text = "Wachtwoord Verandert!"; Response.Redirect("InlogpaginaBeheerder"); Session["Login"] = ""; txtbx_OudWw.Text = ""; txtbx_NieuwWw1.Text = ""; txtbx_NieuwWw2.Text = ""; } else { lbl_Info.Text = "Uw nieuwe wachtwoord moet minimaal 6 karakters bevatten"; } } else { lbl_Info.Text = "De velden bij Nieuwe Wachtwoord komen niet overeen"; } } else { lbl_Info.Text = "Het oude wachtwoord is onjuist ingevoerd"; } }
protected void Button_Login_Click(object sender, EventArgs e) { DatabaseConnectie dbconnect = new DatabaseConnectie(); SqlConnection sqlConnection = new SqlConnection(dbconnect.dbConnectie); SqlCommand WwChecken = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection); sqlConnection.Open(); //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database Wachtwoord = (string)WwChecken.ExecuteScalar(); sqlConnection.Close(); if (HashGenereren.checkHash(txtbx_Login.Text, Wachtwoord)) { Session["Login"] = Wachtwoord; Response.Redirect("OverzichtBeheerder.aspx"); } else { lbl_Info.Text = "Foutieve Inlogcode"; } }
protected void btn_Login_Click(object sender, EventArgs e) { DatabaseConnectie dbconnect = new DatabaseConnectie(); SqlConnection sqlConnection = new SqlConnection(dbconnect.dbConnectie); SqlCommand WwChecken = new SqlCommand("SELECT Hash FROM Wachtwoord ORDER BY Id DESC", sqlConnection); sqlConnection.Open(); //Checkt of het wachtwoord overeenkomt met de gehashte versie uit de database string Wachtwoord = (string)WwChecken.ExecuteScalar(); sqlConnection.Close(); if (HashGenereren.checkHash(txtbx_Login.Text, Wachtwoord)) { lbl_Info.Text = string.Empty; Session["StemmingLogin"] = Wachtwoord; Response.Redirect("StemmingKiezen.aspx"); } else { lbl_Info.Text = "Dit wachtwoord is fout"; } }
public static void Decodeer(string Stemming) { //Maak de lijsten leeg HashGebruikteCodes.Clear(); GestemdOp.Clear(); string Block = ""; string Stem = ""; string HashUniekeCode = ""; string HashGestemdOp = ""; bool HashUniekeCodeUniek = true; DatabaseConnectie dbconnect = new DatabaseConnectie(); SqlConnection sqlConnection = new SqlConnection(dbconnect.dbConnectie); sqlConnection.Open(); //Checkt of de stemming wel afgelopen is (zo niet, dan gebeurt er niks) SqlCommand CheckAfgelopen = new SqlCommand("SELECT Actief FROM Stemming WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection); bool StemmingActief = Convert.ToBoolean(CheckAfgelopen.ExecuteScalar()); if (StemmingActief == false) { SqlDataAdapter StemData = new SqlDataAdapter("SELECT BlockData FROM Block WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection); //Voor elke string uit de db DataTable dt = new DataTable(); StemData.Fill(dt); if (dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { //Haal de blokdata op uit de database Block = (string)row["BlockData"]; //Check of het genesisblock is (lengte 50) //Als het block een genesisblok is (dus geen stemdata) //Sla het block dan over if (Block.Length != 50) { //Check of de laatste paar karakters overeenkomen met het begin van de vorige string //Verwijder de laatste 16 karakters (eerste 16 karakters van vorige block) Block = Block.Remove(Block.Length - 16); //Block Ontleden in delen en toevoegen aan List //Zolang er nog stemmen in het blok staan while (Block.Length > 0) { //Haal de eerste stem op uit de blockstring Stem = Block.Substring(0, Block.IndexOf("&")); //Verwijder de eerste stemstring uit de blockstring Block = Block.Substring(Stem.Length + 1, Block.Length - Stem.Length - 1); //Haal de hash van de unieke code uit de stemstring HashUniekeCode = Stem.Substring(0, Stem.IndexOf("#")); //Haal de hash van het project waarop gestemd is op HashGestemdOp = Stem.Substring(Stem.IndexOf("#") + 1); //Check of de UniekeCode al gebruikt is foreach (string code in HashGebruikteCodes) { if (HashUniekeCode == code) { HashUniekeCodeUniek = false; } } //Als de UniekeCode nog niet gebruikt is if (HashUniekeCodeUniek) { //Voegt de hash van de unieke code toe aan een lijst. Hierdoor kan hij niet nog een keer gebruikt worden. HashGebruikteCodes.Add(HashUniekeCode); SqlDataAdapter ucs = new SqlDataAdapter("SELECT UniekeCode FROM UC WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection); DataTable dtucs = new DataTable(); ucs.Fill(dtucs); //Check of er unieke codes bij de stemming zijn if (dtucs.Rows.Count > 0) { //Voor elke UniekeCode foreach (DataRow ucsrow in dtucs.Rows) { //Als de hash overeenkomt met de UniekeCode uit de database if (HashGenereren.checkHash((string)ucsrow["UniekeCode"], HashUniekeCode)) { SqlDataAdapter Projecten = new SqlDataAdapter("SELECT Naam FROM Project WHERE StemmingsNaam = '" + Stemming + "'", sqlConnection); DataTable dtprojecten = new DataTable(); Projecten.Fill(dtprojecten); //Checkt of het project bestaat if (dtprojecten.Rows.Count > 0) { //Voor elk project foreach (DataRow projectrow in dtprojecten.Rows) { //Check of de hash overeenkomt met 1 van de projecten uit de database van die stemming if (HashGenereren.checkHash((string)projectrow["Naam"], HashGestemdOp)) { //Voeg de projectnaam toe aan de GestemdOp lijst GestemdOp.Add((string)projectrow["Naam"]); } } } } } } } } } } //Maakt de lijst leeg zodat bij een volgende stemming er geen problemen met duplicate hashes zijn. HashGebruikteCodes.Clear(); } } //Sluit de connectie sqlConnection.Close(); }
protected void ImageButtonOkee_Click(object sender, EventArgs e) { DatabaseConnectie dbconnect = new DatabaseConnectie(); SqlConnection sqlConnection = new SqlConnection(dbconnect.dbConnectie); //Haalt de stemming uit de URL en het telefoonnr uit de textbox string Stemming = Request.QueryString["Stemming"]; string Telnr = txtbx_telnr.Text; bool TelNietNieuw = false; Nummercontrole check = new Nummercontrole(); SqlCommand AlleNummers = new SqlCommand("SELECT HashTelNr FROM UC", sqlConnection); sqlConnection.Open(); SqlDataAdapter da = new SqlDataAdapter(AlleNummers); DataTable dt = new DataTable(); da.Fill(dt); //Voor elke opgeslagen hash van een telnr foreach (DataRow dr in dt.Rows) { //Checkt of het telefoonnr voorkomt in de database if (HashGenereren.checkHash(Telnr, dr["HashTelNr"].ToString())) { TelNietNieuw = true; } } //Als het nummer nog niet gehasht in de database staat if (TelNietNieuw == false) { //Checken of een telefoonnummer wel een geldig nummer is if (check.Nummercheck(Convert.ToString("06" + txtbx_telnr.Text))) { //Checkt of er nog unieke codes zijn voor de gekozen stemming SqlCommand NieuweCodeQuery = new SqlCommand("SELECT Top 1 UniekeCode FROM UC WHERE HashTelNr IS NULL AND StemmingsNaam ='" + Stemming + "';", sqlConnection); string NieuweCode = Convert.ToString(NieuweCodeQuery.ExecuteScalar()); if (NieuweCode != "") { //Hasht het telefoonnummer en verbindt het met een unieke code Telnr = HashGenereren.Genereer(Telnr); SqlCommand NummerToevoegen = new SqlCommand("UPDATE UC SET HashTelNr = '" + Telnr + "' WHERE UniekeCode = '" + NieuweCode + "';", sqlConnection); NummerToevoegen.ExecuteNonQuery(); sqlConnection.Close(); //Vult gegevens in van het e-mailadres om mailtjes te sturen naar een e-mail adres //Deze mailtjes worden omgezet naar een SMS'je door het bedrijf van dit e-mailadres //Deze SMS'jes worden vervolgens verstuurd naar het telefoonnummer van de gebruiker string password = "******"; MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); //De e-mail wordt verstuurd vanaf dit g-mail account mail.From = new MailAddress("*****@*****.**"); //Het telefoonnummer waar naar wordt verstuurd is het telefoonnummer in de tekstbox //mail.To.Add("06" + txtbx_telnr.Text + "@sms.informaxion.nl"); mail.To.Add("*****@*****.**"); mail.Subject = "2410, Winnovation"; mail.Body = "Hier is uw code voor Winnovation: http://5e226d69.ngrok.io/projectenoverzicht?Stemmer=" + NieuweCode; //mail.Body = "Hier is uw code voor Winnovation: http://www.winnovationexpo.nl/projectenoverzicht?Stemmer=" + NieuweCode; //mail.Body = "Hier is uw code voor Winnovation: localhost:50512/projectenoverzicht?Stemmer=" + NieuweCode; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential("winnovationwindesheim", password); SmtpServer.EnableSsl = true; SmtpServer.Send(mail); lbl_Info.Visible = true; lbl_Info.Text = "Uw code is verzonden per SMS"; txtbx_telnr.Text = ""; } else { lbl_Info.Visible = true; lbl_Info.Text = "Geen stemcodes beschikbaar"; txtbx_telnr.Text = ""; } } else { lbl_Info.Visible = true; lbl_Info.Text = "Dit nummer is ongeldig"; txtbx_telnr.Text = ""; } } else { lbl_Info.Visible = true; lbl_Info.Text = "Dit nummer is al gebruikt"; txtbx_telnr.Text = ""; } }